CPU usage of python script

后端 未结 3 1997
栀梦
栀梦 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
    

提交回复
热议问题