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

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包

CPUI的占用率究竟有多少,用什么软件可以监测呢,下面是我带来的关于随时了解CPU占用率!常用监晌禅戚测软件有哪些的内容,欢迎阅读!

随时了解CPU占用率!常用监测软件有哪些:

微软在Windows Vista中引入了桌面小工具,很多网友也逐步养成运行小工具或者类似监控软件的习惯,方便自己掌握系统的状态,据了解网友经常使用的系统监测软件分为三类,一类相对较专业,比如AIDA64、Core Temp、Rivatuner等,第二类则是较为普通实用,比如微软Windows Vista、Windows 7的桌面小工具及系统自带的任务管理器,第三类则是国内的各种优化大师。下面笔者就简单介绍下常见的几款CPU监测软件。

AIDA64是常用的硬件信息检测软件 首先是专业类。AIDA64的前身是著名的Everst,而Everst的前身则是32位系统时的AIDA32、16位系统时的AIDA16。这款软件提供了非常丰富的硬件和软件系统信息,硬件数据库规模超过11.5万条,最新版本还新增了300多种固态硬盘产品。

Core Temp不仅可以监测CPU核心温度,还能实时监测占用率 Core Temp从名字上来看是专门检测CPU温度的,它可以按照你设定的刷新率从处理器内核中的数字温度传感器(DTS,Digital ThermalSensor)提取数据,而且可以显袭大示每个内核的温度,准确率非常高,它也提供了检测CPU占用率的功能,整个软件仅几百KB,可谓又专又精。

RivaTuner附带硬件占用率监测功能 RivaTuner本是一款用于Nvidia系列显卡超频的调试软件,不过它也附带了全方位的监控功能,对于超频玩家来说,使用这款软件监测CPU占用率就很方便了。

Windows 7的小工具软件也很实用 其次是普通类。Windows 7自带的很多小工具都非常有用,如果你不满意还可以联机到微软的小工具库里免费获取更多实用软件,这里我们就选了一款名为CpuMemMeter的小工具,顾名思义,这是一款监控CPU和内存占用率的小工具。从上图来看,界面很简练,所需信息一览无遗。

系统自带的任务管理器 微软自带的任务管理器是很多人尤其是入门用户忽视的一个很重要的实用工具,它提供了详细的硬件监控和软件进程监控信息,此外它还可以用来手动查毒以及中止一些流氓软件的进程,以上监控硬件占用率的界面想必很多人都很熟悉了,这里就不再多言,顺便说句,调出这一界面的快捷键为Esc+Shift+Ctrl。

国产各类优化软件也自带监测功能 最后就是国内的各种优化软件,比如各类优化大师、鲁大师等。这部分软件在推广上做的相当到位,不少网友也都有意或无意得在自己电脑上安装了它们,以上界面即为鲁大师的监控界面。 在正式开始测试之前,笔者针对以上监测软件做一个小小 总结 ,如果你打算装机或者购买 笔记本 ,我推荐你在随身U盘拷一份宴陵AIDA64的绿色版,专业精准的检测非常实用如果你打算实时了解CPU的占用率以及核心温度,那么Core Temp是个不错的选择,软件体积也仅有170KB左右如果你喜欢超频又想实时监测CPU占用率,那么我推荐RivaTuner,针对专业玩家的贴心设计会让你的超频更惬意如果你不想使用单独的软件,那么Windows 7提供的桌面小工具还是很不错的如果你不想安装任何监控软件,只是偶尔查看下CPU占用情况,那么可以使用系统的任务管理器最后如果你想在监测CPU占用情况时还想顺手清理下Temp文件夹里的垃圾的话,那么可以尝试下国内的优化大师,不过笔者的建议是在进行除清理垃圾文件外的各种优化之前最好进行系统备份,因为这些软件在优化系统时有可能误改动系统文件,有可能造成系统的不稳定,笔者之前就碰到很多人由于优化了系统而导致最终的系统重装。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12352645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存