psutil

Форк
0
/
bench_oneshot_2.py 
54 строки · 1.1 Кб
1
#!/usr/bin/env python3
2

3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
4
# Use of this source code is governed by a BSD-style license that can be
5
# found in the LICENSE file.
6

7
"""Same as bench_oneshot.py but uses perf module instead, which is
8
supposed to be more precise.
9
"""
10

11
import sys
12

13
import pyperf  # requires "pip install pyperf"
14
from bench_oneshot import names
15

16
import psutil
17

18

19
p = psutil.Process()
20
funs = [getattr(p, n) for n in names]
21

22

23
def call_normal():
24
    for fun in funs:
25
        fun()
26

27

28
def call_oneshot():
29
    with p.oneshot():
30
        for fun in funs:
31
            fun()
32

33

34
def add_cmdline_args(cmd, args):
35
    cmd.append(args.benchmark)
36

37

38
def main():
39
    runner = pyperf.Runner()
40

41
    args = runner.parse_args()
42
    if not args.worker:
43
        print(
44
            "%s methods involved on platform %r (psutil %s):"
45
            % (len(names), sys.platform, psutil.__version__)
46
        )
47
        for name in sorted(names):
48
            print("    " + name)
49

50
    runner.bench_func("normal", call_normal)
51
    runner.bench_func("oneshot", call_oneshot)
52

53

54
main()
55

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.