- 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
推薦閱讀
- Java從入門到精通(第5版)
- Java EE 7 Development with NetBeans 8
- EPLAN實戰設計
- Domain-Driven Design in PHP
- 深入實踐Kotlin元編程
- Android應用開發深入學習實錄
- Struts 2.x權威指南
- Raspberry Pi Blueprints
- Python滲透測試編程技術:方法與實踐(第2版)
- Building Web and Mobile ArcGIS Server Applications with JavaScript(Second Edition)
- Mastering Node.js
- Learning Redis
- Java基礎案例教程(第2版)
- iOS應用逆向工程:分析與實戰
- Pentaho Analytics for MongoDB Cookbook