CPU usage of python script

后端 未结 3 1981
栀梦
栀梦 2021-01-14 19:31

Is it possible to check CPU usage of simple script ?

For example: How to get the CPU usage in % of printing 100 times \"hello world!\" ?

Currently I\'m getti

相关标签:
3条回答
  • 2021-01-14 20:01

    If you are on a unix machine, you could always open top in a new terminal and then observe the % usage while you run your python program. Alternatively, there are some 3rd party libraries you can use.

    Here's one: Benchmark

    Examples (taken from the py package index).

    Program:

    from benchmarker import Benchmarker
    
    ## specify number of loop
    with Benchmarker(1000*1000, width=20) as bench:
        s1, s2, s3, s4, s5 = "Haruhi", "Mikuru", "Yuki", "Itsuki", "Kyon"
    
        @bench(None)                ## empty loop
        def _(bm):
            for i in bm:
                pass
    
        @bench("join")
        def _(bm):
            for i in bm:
                sos = ''.join((s1, s2, s3, s4, s5))
    
        @bench("concat")
        def _(bm):
            for i in bm:
                sos = s1 + s2 + s3 + s4 + s5
    
        @bench("format")
        def _(bm):
            for i in bm:
                sos = '%s%s%s%s%s' % (s1, s2, s3, s4, s5)
    

    Results:

    $ python example.py -h              # show help
    $ python example.py -o result.json
    ## benchmarker:         release 4.0.0 (for python)
    ## python version:      3.4.2
    ## python compiler:     GCC 4.8.2
    ## python platform:     Linux-3.13.0-36-generic-x86_64-with-debian-jessie-sid
    ## python executable:   /opt/vs/python/3.4.2/bin/python
    ## cpu model:           Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz  # 2494.050 MHz
    ## parameters:          loop=1000000, cycle=1, extra=0
    
    ##                        real    (total    = user    + sys)
    (Empty)                 0.0236    0.0200    0.0200    0.0000
    join                    0.2779    0.2800    0.2800    0.0000
    concat                  0.3792    0.3800    0.3800    0.0000
    format                  0.4233    0.4300    0.4300    0.0000
    
    ## Ranking                real
    join                    0.2779  (100.0) ********************
    concat                  0.3792  ( 73.3) ***************
    format                  0.4233  ( 65.6) *************
    
    ## Matrix                 real    [01]    [02]    [03]
    [01] join               0.2779   100.0   136.5   152.3
    [02] concat             0.3792    73.3   100.0   111.6
    [03] format             0.4233    65.6    89.6   100.0
    
    0 讨论(0)
  • 2021-01-14 20:07

    This will not calculate the CPU usage, but the execution time. Use timeit and find the difference in the initial time of the execution and the end of the program. For example:

    import timeit
    start_time = timeit.default_timer()
    print("Hello World")
    print("Hello World")
    print("Hello World")
    end_time = timeit.default_timer()
    print (end_time - start_time)
    
    0 讨论(0)
  • 2021-01-14 20:09

    You'll need the psutil module.

    import psutil
    print(psutil.cpu_percent())
    
    0 讨论(0)
提交回复
热议问题