7种检测Python程序运行时间、CPU和内存占用的方法

Python021

7种检测Python程序运行时间、CPU和内存占用的方法,第1张

1. 使用装饰器来衡量函数执行时间有一个简单方法,那就是定义一个装饰器来测量函数的执行时间,并输出结果: import time from functoolsimport wraps import random def fn_timer(function):   @wraps(function)   def function_timer(*args, **kwargs):       t0= time.time()       result= function(*args, **kwargs)       t1= time.time()       print("Total time running %s: %s seconds" %           (function.__name__, str(t1- t0)) )       return result return function_timer @fn_timer def random_sort(n):   return sorted([random.random() for i in range(n)]) if __name__== "__main__":   random_sort(2000000) 输出:Total time running random_sort: 0.6598007678985596 seconds 使用方式的话,就是在要监控的函数定义上面加上 @fn_timer 就行了 或者 # 可监控程序运行时间 import time import random def clock(func):     def wrapper(*args, **kwargs):         start_time= time.time()         result= func(*args, **kwargs)         end_time= time.time()         print("共耗时: %s秒" % round(end_time- start_time, 5))         return result return wrapper @clock def random_sort(n):   return sorted([random.random() for i in range(n)]) if __name__== "__main__":   random_sort(2000000) 输出结果:共耗时: 0.65634秒2. 使用timeit模块另一种方法是使用timeit模块,用来计算平均时间消耗。 执行下面的脚本可以运行该模块。这里的timing_functions是Python脚本文件名称。 在输出的末尾,可以看到以下结果:4 loops, best of 5: 2.08 sec per loop 这表示测试了4次,平均每次测试重复5次,最好的测试结果是2.08秒。 如果不指定测试或重复次数,默认值为10次测试,每次重复5次。3. 使用Unix系统中的time命令然而,装饰器和timeit都是基于Python的。在外部环境测试Python时,unix time实用工具就非常有用。 运行time实用工具: 输出结果为: Total time running random_sort: 1.3931210041 seconds real 1.49 user 1.40 sys 0.08 第一行来自预定义的装饰器,其他三行为:     real表示的是执行脚本的总时间     user表示的是执行脚本消耗的CPU时间。     sys表示的是执行内核函数消耗的时间。 注意:根据维基百科的定义,内核是一个计算机程序,用来管理软件的输入输出,并将其翻译成CPU和其他计算机中的电子设备能够执行的数据处理指令。 因此,Real执行时间和User+Sys执行时间的差就是消耗在输入/输出和系统执行其他任务时消耗的时间。4. 使用cProfile模块 5. 使用line_profiler模块6. 使用memory_profiler模块7. 使用guppy包

在 Windows 平台上,有时候我们想让自己的程序在指定的CPU上运行,此时我看可以通过下面几个API来实现

其中绑定CPU是mask的值如下:

示例

3.5GHzIntelCorei7。Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言,python处理百万数据cpu为3.5GHzIntelCorei7,cpu主要由运算器、控制器、寄存器三部分组成,从字面意思看就是运算就是起着运算的作用。