作家
登录

Python脚本分析CPU使用情况

作者: 来源: 2017-12-01 09:11:21 阅读 我要评论

CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了


在这篇文┞仿中,我将评论辩论一个对象,用以分析Python中CPU应用情况。CPU分析是经由过程分析CPU履行代码的方法来测量代码的机能,以此找到代码中的不当之处,然后处理它们。

接下来我们将看看若何跟踪Python脚本应用时CPU应用情况,重点存眷以下几个方面:

  1、cProfile

  2、line_profiler

  3、pprofile

测量CPU应用率

对于这篇文┞仿,我将重要应用与内存分析中应用脚本相同的脚本,具体如下:

别的,请记住,在PyPy2中,您须要应用与之合营的pip版本:

并且其他依附项也将被安装:

cProfile

在评论辩论CPU分析时,最常用的对象之一是cProfile,主如果因为它内置在CPython2和PyPy2中。这是一个肯定性的分析器,意味着在运行法度榜样时会收集一组统计数据,例如我们代码的各个部分的履行次数或履行时光。此外,cProfile在体系上的开销比其他内置的分析器(设备文件)要低。

CPython2的用法很简单:

如不雅您应用PyPy2:

其输出如下:

即使应用这个文本输出,很轻易看到我们的脚本多次调用了list.append办法。

再次运行脚本:

我们获得以下output.png文件:

如许更轻易看到一切。我们来细心看看它的输出。您可以看到脚本中的函数调用如下:

  1、第一行:Python文件名,行号和办法名称

  2、第二行:代码块占用全部时光的百分比

  4、第四行:调用函数的次数

  1、CPU应用图

例如,在顶部的第三个红色方块中,办法primes占用了98.28%的时光,个中65.44%的内容在个中进行,调用了40次。其余的时光花在Python中的list.append(22.33%)和range(11.51%)中。

作为一个简单的脚本,我们只须要重写我们的脚本,具体的如下所示:

  4、代码热图

如不雅我们应用CPython2测量我们脚本的时光,

还有PyPy2:

我们经由过程应用PyPy2的CPython2和3.1X获得了不错的效不雅,下面是cProfile的调用流程图:

您还可以以编程方法应用cProfile,例如:

这在某些情况下很有效,例如多过程机能测量

源代码可以在这里找到,也可以在这里找到PyPI页面。与cProfile比拟,它具有一样的开销,不以前要花费12倍的时光来获取设备文件。

要应用它,您须要先经由过程pip添加它:pip install pip install Cython ipython == 5.4.1 line_profiler(CPython2)。这个分析器的一个重要缺点是它不支撑PyPy。

你将获得如下输出:

我们看到,反复调用list.append的两个轮回花了最多的时光。

pprofile

根据作者解释,pprofile是一个“线程测量和统计的纯python分析器”。

它受到line_profiler的启发,修复了很多缺点,然则因为它完全用Python编写,所以它也可以与PyPy成功应用。与cProfile比拟,应用CPython时的分析时光要多28倍,而应用PyPy时,分析时光要多10倍,并且细节程度加倍细化。


  推荐阅读

  神经网络算法的优势与应用

CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了 人工神经收集(ANN)以大年夜脑处理机制造为基本,开辟用于建立复杂模式和猜测问题的算法。起首懂得大年夜脑若何处理信息:在>>>详细阅读


本文标题:Python脚本分析CPU使用情况

地址:http://www.17bianji.com/lsqh/39359.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)