色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python腳本使用時CPU使用情況檢測過程詳解

馬哥Linux運維 ? 2017-11-30 15:42 ? 次閱讀

在這篇文章中,我將討論一個工具,用以分析PythonCPU使用情況。CPU分析是通過分析CPU執行代碼的方式來測量代碼的性能,以此找到代碼中的不妥之處,然后處理它們。接下來我們將看看如何跟蹤Python腳本使用時CPU使用情況,重點關注以下幾個方面:1、cProfile2、line_profiler3、pprofile4、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的兩個循環花了我們腳本中最多的時間。

vprofvprof是一個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的兩個循環花了我們腳本中最多的時間。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11028

    瀏覽量

    215829
  • python
    +關注

    關注

    56

    文章

    4823

    瀏覽量

    86084

原文標題:Python腳本分析CPU使用情況

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    rtthread編譯后如何查看堆??臻g使用情況

    rtthread編譯后如何查看堆棧空間使用情況,現在只能在編譯完成后看到總大小,有沒有辦法能看到詳細的使用情況。 由于RAM只有128K,除去內存池32k,想看看剩余的RAM在哪用了
    發表于 03-05 07:58

    CUBEIDE運行完可以看RAM的使用情況,運行中可以實時查看RAM的使用情況嗎?

    CUBEIDE運行完可以看RAM的使用情況,運行中可以實時查看RAM的使用情況嗎?以及負載情況? 圖片是運行完可以看RAM使用情況,是否可以運行中實時查看?是不是cubemonito
    發表于 03-12 07:56

    如何查看RAM使用情況?

    嗨, 我正在使用STM32L053 Nucleo,我已經為它運行了一些代碼,我希望做一個RAM估計來查看當前固件的RAM使用情況。如何查看RAM使用情況? 問候#記憶
    發表于 08-05 10:08

    Android應用的內存使用情況檢查方法

    如何檢查 Android 應用的內存使用情況
    發表于 03-30 13:36

    ucosiii堆棧使用情況檢測使用率100%?

    用OSTaskStkChk函數檢測堆棧的使用情況,發現有兩個任務使用情況為100%,堆棧設置為1024,增大堆棧到2048,依然使用率100%,該任務代碼很短,一直運行,雖然使用率100%,但是程序正常運行并未崩潰,請問這是由于
    發表于 04-20 22:56

    電池使用情況統計信息

    電池使用情況信息根據電池使用情況統計信息和電源配置文件中的值計算得出。電池使用情況統計信息框架可通過跟蹤設備組件在不同狀態下維持的時間來自動確定電池使用情況統計信息。當組件(WLAN
    發表于 12-31 07:01

    如何知道CPU利用率和內存使用情況?

    我在 MIMXRT1062 板上工作,我使用了“EVK-MIMXRT1060-guix_washing_machine”示例。我想要 CPU 利用率和內存使用情況。請給我有關它的信息,我也想知道它是如何計算的。
    發表于 03-31 06:21

    如何檢查imx6中的GPU使用情況?

    。 目前我正在使用 gmem_info 腳本來測試 GPU 使用情況并低于 o/p。 gmem_info Pid Total Reserved Contiguous Virtual Nonpaged
    發表于 05-22 07:04

    SoC如何查看內存使用情況

    查看系統內存: free -h 查看ION內存 NPU內存使用情況: cat /sys/kernel/debug/ion/bm_npu_heap_dump/summary | head -2VPU
    發表于 09-19 07:23

    主流GPS芯片使用情況

    主流GPS芯片使用情況
    發表于 11-27 14:34 ?13次下載

    在Linux系統下使用top命令查看CPU使用情況

    在Linux系統下,使用top命令查看CPU使用情況。
    發表于 07-10 11:46 ?4613次閱讀
    在Linux系統下使用top命令查看<b class='flag-5'>CPU</b><b class='flag-5'>使用情況</b>

    單片機整體的CPU使用情況詳細介紹

    打開電腦的任務管理器,看著跳動的 CPU 使用率,發現很舒服。每一個線程占用了多少 CPU 清清楚楚,也就能針對性的確認為啥你的電腦跑的慢了。今天這篇筆記不講每個任務(或線程)CPU使用情
    發表于 11-25 15:58 ?12次下載
    單片機整體的<b class='flag-5'>CPU</b><b class='flag-5'>使用情況</b>詳細介紹

    STM32/KEIL/MDK 查看 FLASH 和 RAM 使用情況

    STM32/KEIL/MDK 查看 FLASH 和 RAM 使用情況
    發表于 12-02 09:06 ?13次下載
    STM32/KEIL/MDK 查看 FLASH 和 RAM <b class='flag-5'>使用情況</b>

    Windows查看電源使用情況

    這里使用Windows自帶的東西查看電源使用情況。1.按Win鍵+R,輸入cmd,回車。2.輸入Powercfg /batteryreport回車。3.根據提示找到電池報告文件,雙擊打開即可。????...
    發表于 01-05 14:18 ?0次下載
    Windows查看電源<b class='flag-5'>使用情況</b>

    LPC86x ADC使用情況

    電子發燒友網站提供《LPC86x ADC使用情況.pdf》資料免費下載
    發表于 08-16 10:42 ?0次下載
    LPC86x ADC<b class='flag-5'>使用情況</b>
    主站蜘蛛池模板: 小护士大pp | 亚洲黄视频在线观看 | 一二三四在线观看韩国 | 久久久无码精品亚洲日韩按摩 | 在教室轮流被澡高H林萌 | 久久久久久久免费 | 中文字幕不卡一区二区三区 | 少妇内射兰兰久久 | 6080yy 久久 亚洲 日本 | 伊人网中文字幕 | 内射后入在线观看一区 | FREECHINESE东北群交 | 野花韩国视频中文播放 | 四虎影院网红美女 | 亚洲精品tv久久久久久久久久 | 久草在线在线精品观看 | 国产精品18久久久久网站 | 青青热久精品国产亚洲AV无码 | 99久在线国内在线播放免费观看 | 亚洲日本在线不卡二区 | 色爱区综合激情五月综合激情 | 亚洲成人一区二区 | 免费成人高清在线视频 | 熟妇无码乱子成人精品 | 久久才是精品亚洲国产 | 亚洲精品久久久无码AV片软件 | 亚州AV人片一区二区三区99久 | 岳打开双腿开始配合日韩视频 | 超h高h肉h文教室生理课 | 嫩草影院在线观看网站成人 | 日韩精品真人荷官无码 | 精品久久久久久无码人妻国产馆 | 调教女M屁股撅虐调教 | 亚洲精品国产拍在线观看 | 久久精品一本到东京热 | 最近日本MV字幕免费观看视频 | 99午夜视频 | 国产成人无码精品久久久影院 | 超碰最新网站 | 亚洲精品无码不卡在线播HE | 男人J放进女人屁股免费观看 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品