成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python腳本分析CPU使用情況

開發 后端
在這篇文章中,我將討論一個工具,用以分析Python中CPU使用情況。CPU分析是通過分析CPU執行代碼的方式來測量代碼的性能,以此找到代碼中的不妥之處,然后處理它們。

在這篇文章中,我將討論一個工具,用以分析Python中CPU使用情況。CPU分析是通過分析CPU執行代碼的方式來測量代碼的性能,以此找到代碼中的不妥之處,然后處理它們。

接下來我們將看看如何跟蹤Python腳本使用時CPU使用情況,重點關注以下幾個方面:

    1、cProfile

    2、line_profiler

    3、pprofile

    4、vprof

測量CPU使用率

對于這篇文章,我將主要使用與內存分析中使用腳本相同的腳本,具體如下:

另外,請記住,在PyPy2中,您需要使用與之配合的pip版本:

并且其他依賴項也將被安裝:

cProfile

在討論CPU分析時,最常用的工具之一是cProfile,主要是因為它內置在CPython2和PyPy2中。這是一個確定性的分析器,意味著在運行程序時會收集一組統計數據,例如我們代碼的各個部分的執行次數或執行時間。此外,cProfile在系統上的開銷比其他內置的分析器(配置文件)要低。

CPython2的用法很簡單:

如果您使用PyPy2:

其輸出如下:

即使使用這個文本輸出,很容易看到我們的腳本多次調用了list.append方法。

如果我們使用gprof2dot,我們可以以圖形的方式看到cProfile輸出。要使用它,我們必須首先安裝graphviz,之后是一些依賴包,***在Ubuntu上使用如下命令:

再次運行腳本:

我們得到以下output.png文件:

這樣更容易看到一切。我們來仔細看看它的輸出。您可以看到腳本中的函數調用如下:

    1、***行:Python文件名,行號和方法名稱

    2、第二行:代碼塊占用全部時間的百分比

    3、第三行:括號中,方法本身占全部時間的百分比

    4、第四行:調用函數的次數

例如,在頂部的第三個紅色方塊中,方法primes占用了98.28%的時間,其中65.44%的內容在其中進行,調用了40次。其余的時間花在Python中的list.append(22.33%)和range(11.51%)中。

作為一個簡單的腳本,我們只需要重寫我們的腳本,具體的如下所示:

如果我們使用CPython2測量我們腳本的時間,

還有PyPy2:

我們通過使用PyPy2的CPython2和3.1X獲得了不錯的效果,下面是cProfile的調用流程圖:

您還可以以編程方式使用cProfile,例如:

這在某些情況下很有用,例如多進程性能測量

line_profiler

此分析器在行級提供關于工作負載的信息。它使用Cython在C中實現,并將其與cProfile進行比較時發現其具有較小的開銷。

源代碼可以在這里找到,也可以在這里找到PyPI頁面。與cProfile相比,它具有一樣的開銷,不過卻要花費12倍的時間來獲取配置文件。

要使用它,您需要先通過pip添加它:pip install pip install Cython ipython == 5.4.1 line_profiler(CPython2)。這個分析器的一個主要缺點是它不支持PyPy。

就像使用memory_profiler一樣,您需要在要分析的函數中添加一個裝飾器。在我們的例子中,您需要在03.primes-v1.py中定義我們的primes函數之前添加@profile。然后調用它:

你將得到如下輸出:

我們看到,重復調用list.append的兩個循環花了最多的時間。

pprofile

根據作者說明,pprofile是一個“線程測量和統計的純python分析器”。

它受到line_profiler的啟發,修復了很多缺點,但是由于它完全用Python編寫,所以它也可以與PyPy成功使用。與cProfile相比,使用CPython時的分析時間要多28倍,而使用PyPy時,分析時間要多10倍,而且細節水平更加細化。

我們也支持PyPy!除此之外,它支持剖析線程,這在各種情況下可能會很方便。

要使用它,您需要先通過pip添加它:pip install pprofile(CPython2)/ pypy -m pip install pprofile(PyPy),然后調用它:

輸出與我們以前看到的不同,我們得到如下結果:

我們現在可以更詳細地看到一切。讓我們來看看輸出。您可以獲得腳本的整個輸出,并且在每行之前,您可以看到對其進行的調用次數,運行時間(秒),每次調用的時間和全局時間的百分比,pprofile為我們的輸出添加了額外的行(如第44和50行,以(call)開頭)與累積指標。

再次,我們看到,重復調用list.append的兩個循環花了我們腳本中最多的時間。

vprof

vprof是一個Python分析器,為各種Python程序特性(如運行時間和內存使用)提供豐富的交互式可視化。它是一個基于Node.JS的圖形化的顯示在網頁中的結果。

使用它,您可以看到與Python腳本相關的以下一個或全部:

    1、CPU使用圖

    2、代碼分析

    3、內存圖

    4、代碼熱圖

要使用它,您需要先通過pip添加它:pip install vprof(CPython2)/ pypy -m pip install vprof(PyPy),然后調用它:

在CPython2上,顯示代碼散熱圖(***個調用如下)和代碼分析(下面的第二個調用):

在PyPy上,顯示代碼散熱圖(***個調用如下)和代碼分析(下面的第二個調用):

在每種情況下,您將看到代碼散點圖的以下內容

以及代碼分析的以下內容。

 

結果以圖形方式看到,我們可以懸停鼠標或單擊每行以獲取更多信息。再次,我們看到,重復調用list.append的兩個循環花了我們腳本中最多的時間。 

責任編輯:龐桂玉 來源: 馬哥Linux運維
相關推薦

2014-04-24 16:26:31

UbuntuUbuntu 磁盤Linux基礎

2010-10-14 16:10:28

MySQL排序

2019-09-17 12:13:05

BashLinuxCPU

2022-07-13 14:26:26

Linux

2013-07-23 06:56:12

Android內存機制APP內存使用情況Android開發學習

2022-06-09 08:07:15

Shell腳本Linux

2019-06-24 08:53:01

Bash腳本Linux系統運維

2018-07-06 14:52:49

Docker容器云服務

2017-01-18 21:57:14

2010-05-12 15:14:59

subversion管

2015-11-09 15:32:34

TorTor網絡隱私網絡

2020-06-17 14:10:01

Python內存程序

2010-02-03 17:16:58

Linux內存使用

2009-06-30 14:11:00

Hibernate緩存

2010-06-02 11:06:15

Linux 內存監控

2010-11-16 11:40:04

Oracle查詢表空間

2009-12-14 17:25:20

Linux操作系統

2009-02-03 09:49:00

FTP空間共享

2020-12-07 18:19:46

Common Lisp方言編程

2019-11-27 14:38:41

Windows 10Firefox高CPU
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费在线观看成人 | 午夜精品一区二区三区在线视频 | 成人在线中文 | 欧美1区2区 | 精品视频久久久久久 | www亚洲免费国内精品 | 国产精品1区2区3区 国产在线观看一区 | 亚洲免费人成在线视频观看 | 午夜影院黄 | 一色桃子av一区二区 | 日日干夜夜操 | 不卡一区| 欧美激情一区二区三区 | 日韩av第一页| 一级特黄网站 | 亚洲福利电影网 | 美女国内精品自产拍在线播放 | 久久国产精品免费一区二区三区 | 亚洲毛片在线观看 | 欧美极品少妇xxxxⅹ免费视频 | 99影视| 国产日韩欧美一区二区 | 日本成人福利 | 日韩欧美在线精品 | 成人免费在线观看 | 亚洲一区二区不卡在线观看 | 欧美精品综合在线 | 国产精品精品视频一区二区三区 | 在线a视频网站 | 精品国产乱码久久久久久牛牛 | 暖暖日本在线视频 | 亚洲成人自拍网 | 国产一区二区自拍 | 91精品国产乱码久久久久久久 | av网站免费| 欧美三级久久久 | 久久久久亚洲精品中文字幕 | 天天草天天射 | 91看片网 | 成人三级网址 | 国产激情视频 |