最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中性能分析利器pyinstrument詳細講解

 更新時間:2022年02月07日 15:25:55   作者:曲鳥  
大家好,本篇文章主要講的是Python中性能分析利器pyinstrument詳細講解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下

一、前言

程序的性能也是非常關鍵的指標,很多時候你的代碼跑的快,更能夠體現你的技術。最近發(fā)現很多小伙伴在性能分析的過程中都是手動打印運行時間的方式來統(tǒng)計代碼耗時的:

import datetime
start=datetime.datetime.now()
b=[i for i in range(10000000)]  # 生成長度為一千萬的列表
end=datetime.datetime.now()
print(end-start)

輸出結果

0:00:00.377766

這種方法使用很快捷,但需要統(tǒng)計每行代碼的執(zhí)行時間,生成可視化的報告等更完善的性能分析時就有點力不從心了。這個時候可以使用python的第三方庫Pyinstrument來進行性能分析。

二、Pyinstrument使用

Pyinstrument 是一個 Python 分析器。分析器是一種幫助您優(yōu)化代碼的工具 - 使其更快。要獲得最大的速度提升。
Pyinstrument 官方文檔:pyinstrument

Pyinstrument 安裝:

pip install pyinstrument

1. 舉例

對于最開始我們舉的例子,使用Pyinstrument實現的代碼如下:

文末添加個人VX,獲取資料和免費答疑

from pyinstrument import Profiler
profiler=Profiler()
profiler.start()
b=[i for i in range(10000000)]# 生成長度為一千萬的列表
profiler.stop()
profiler.print()

輸出結果

  _     ._   __/__   _ _  _  _ _/_   Recorded: 10:39:54  Samples:  1
 /_//_/// /_\ / //_// / //_'/ //     Duration: 0.385     CPU time: 0.391
/   _/                      v4.1.1
Program: D:/code/server/aitestdemo/test2.py
0.385 <module>  test2.py:2  #執(zhí)行總耗時
└─ 0.385 <listcomp>  test2.py:7 #單行代碼耗時

打印的信息包含了記錄時間、線程數、總耗時、單行代碼耗時、CPU執(zhí)行時間等信息。

在多行代碼分析的情況下的使用效果(分別統(tǒng)計生成一千萬長度、一億長度、兩億長度的列表耗時):

from pyinstrument import Profiler

profiler = Profiler()
profiler.start()
a = [i for i in range(10000000)]  # 生成長度為一千萬的列表
b = [i for i in range(100000000)]  # 生成長度為一億的列表
c = [i for i in range(200000000)]  # 生成長度為十億的列表
profiler.stop()
profiler.print()

輸出結果

Program: D:/code/server/aitestdemo/test2.py
16.686 <module>  test2.py:1
├─ 12.178 <listcomp>  test2.py:9
├─ 4.147 <listcomp>  test2.py:8
└─ 0.358 <listcomp>  test2.py:7

2. Pyinstrument分析django代碼

使用Pyinstrument分析 Django 代碼非常簡單,只需要在 Django 的配置文件settings.pyMIDDLEWARE 中添加如下配置:

MIDDLEWARE = [
	...
    'pyinstrument.middleware.ProfilerMiddleware',
	...
]

然后就可以在 url 上加一個參數 profile 就可以:

在這里插入圖片描述

Pyinstrument還支持flask、異步代碼的性能分析,具體可以查看官方文檔進行學習。
Pyinstrument也提供了豐富的api供我們使用,官網文檔有詳細的介紹:https://pyinstrument.readthedocs.io/en/latest/reference.html

三、Pyinstrument與cProfile(python自帶性能分析器)的不同

根據官方文檔的描述來看,Pyinstrument的系統(tǒng)開銷會比cProfile 這類跟蹤分析器小很多,cProfile由于大量調用探查器,可能會扭曲測試結果:

在這里插入圖片描述

總結

到此這篇關于Python中性能分析利器pyinstrument詳細講解的文章就介紹到這了,更多相關Python性能分析利器pyinstrument內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 一文向您詳細介紹指令 python -m pip install的用法和功能

    一文向您詳細介紹指令 python -m pip install的用法和功能

    通過本文的介紹,我們詳細了解了python -m pip install命令的用法和功能,從基本用法到安裝特定版本的包、從其他源安裝包、升級和卸載包,再到使用requirements.txt管理依賴,我們逐步深入了解了pip的強大功能,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • python requests.post帶head和body的實例

    python requests.post帶head和body的實例

    今天小編就為大家分享一篇python requests.post帶head和body的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python實現直播推流效果

    Python實現直播推流效果

    這篇文章主要介紹了Python實現直播推流效果,主要是通過opencv讀取視頻對視頻分割為幀,本文通過實例代碼講解的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • python制作簡單計算器功能

    python制作簡單計算器功能

    這篇文章主要為大家詳細介紹了python制作簡單計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Python字符串對象實現原理詳解

    Python字符串對象實現原理詳解

    這篇文章主要介紹了Python字符串對象實現原理詳解,在Python世界中將對象分為兩種:一種是定長對象,比如整數,整數對象定義的時候就能確定它所占用的內存空間大小,另一種是變長對象,在對象定義時并不知道是多少,需要的朋友可以參考下
    2019-07-07
  • 利用python實現逐步回歸

    利用python實現逐步回歸

    今天小編就為大家分享一篇利用python實現逐步回歸,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • pytorch實現多項式回歸

    pytorch實現多項式回歸

    這篇文章主要為大家詳細介紹了pytorch實現多項式回歸,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Python實現的rsa加密算法詳解

    Python實現的rsa加密算法詳解

    這篇文章主要介紹了Python實現的rsa加密算法,結合完整實例形式分析了Python實現rsa加密算法的原理、步驟與相關操作技巧,需要的朋友可以參考下
    2018-01-01
  • python如何去除字符串兩端的引號

    python如何去除字符串兩端的引號

    這篇文章主要介紹了python如何去除字符串兩端的引號問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 使用Python分割并高效處理PDF大文件詳解

    使用Python分割并高效處理PDF大文件詳解

    在處理大型PDF文件時,將它們分解成更小、更易于管理的塊通常是有益的,本文將為大家介紹一下如何使用Python和為Unstructured.io庫實現分割PDF吧
    2025-03-03

最新評論

荥经县| 喀什市| 阜阳市| 美姑县| 庐江县| 乐至县| 锡林浩特市| 石门县| 长白| 灵璧县| 峨眉山市| 永德县| 邵武市| 开阳县| 黔江区| 崇礼县| 炉霍县| 安化县| 蒙阴县| 弥渡县| 鄂伦春自治旗| 顺昌县| 巨野县| 蒙山县| 左权县| 乐平市| 南平市| 阜南县| 昌都县| 临朐县| 于都县| 镇安县| 盐津县| 合江县| 安徽省| 靖边县| 崇信县| 大渡口区| 神木县| 昌平区| 玉屏|