Skip to content Skip to sidebar Skip to footer

Cpu Usage Of Python Script

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 getting the execution time in t

Solution 1:

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 loopwith Benchmarker(1000*1000, width=20) as bench:
    s1, s2, s3, s4, s5 = "Haruhi", "Mikuru", "Yuki", "Itsuki", "Kyon"    @bench(None)                ## empty loopdef_(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

Solution 2:

You'll need the psutil module.

import psutil
print(psutil.cpu_percent())

Solution 3:

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)

Post a Comment for "Cpu Usage Of Python Script"