- Mastering Python Scripting for System Administrators
- Ganesh Sanjiv Naik
- 226字
- 2021-07-02 14:00:33
The cProfile module
As discussed previously, profiling means measuring the execution time of a program. We are going to use the cProfile Python module for profiling a program.
Now, we will write a cprof_example.py script and write the following code in it:
mul_value = 0
def mul_numbers( num1, num2 ):
mul_value = num1 * num2;
print ("Local Value: ", mul_value)
return mul_value
mul_numbers( 58, 77 )
print ("Global Value: ", mul_value)
Run the program and you will see the output as follows:
student@ubuntu:~$ python3 -m cProfile cprof_example.py
Local Value: 4466
Global Value: 0
6 function calls in 0.000 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 cprof_example.py:1(<module>)
1 0.000 0.000 0.000 0.000 cprof_example.py:2(mul_numbers)
1 0.000 0.000 0.000 0.000 {built-in method builtins.exec}
2 0.000 0.000 0.000 0.000 {built-in method builtins.print}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
So, using cProfile, all functions that are called will get printed with the time spent on each function. Now, we will see what these column headings mean:
- ncalls: Number of calls
- tottime: Total time spent in the given function
- percall: Quotient of tottime divided by ncalls
- cumtime: Cumulative time spent in this and all subfunctions
- percall: Quotient of cumtime divided by primitive calls
- filename:lineno(function): Provides the respective data of each function
推薦閱讀
- Delphi程序設計基礎:教程、實驗、習題
- INSTANT FreeMarker Starter
- Rake Task Management Essentials
- Hands-On RESTful Web Services with Go
- Unity 5.x By Example
- Python完全自學教程
- Oracle GoldenGate 12c Implementer's Guide
- Java程序設計基礎(第6版)
- 視窗軟件設計和開發自動化:可視化D++語言
- JBoss AS 7 Development
- Android開發權威指南(第二版)
- Scratch少兒編程高手的7個好習慣
- Learning Google Apps Script
- CISSP in 21 Days(Second Edition)
- Node.js進階之路