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

Python性能分析工具Profile使用實例

 更新時間:2019年11月19日 15:27:21   作者:-零  
這篇文章主要介紹了Python性能分析工具Profile使用實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Python性能分析工具Profile使用實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

代碼優(yōu)化的前提是需要了解性能瓶頸在什么地方,程序運行的主要時間是消耗在哪里,對于比較復(fù)雜的代碼可以借助一些工具來定位,python 內(nèi)置了豐富的性能分析工具,如 profile,cProfile 與 hotshot 等。其中 Profiler 是 python 自帶的一組程序,能夠描述程序運行時候的性能,并提供各種統(tǒng)計幫助用戶定位程序的性能瓶頸。Python 標(biāo)準(zhǔn)模塊提供三種 profilers:cProfile,profile 以及 hotshot。

profile 的使用非常簡單,只需要在使用之前進行 import 即可,也可以在命令行中使用。

使用Profile

測試示例:

import profile
def a():
  sum = 0
  for i in range(1, 10001):
    sum += i
  return sum

def b():
  sum = 0
  for i in range(1, 100):
    sum += a()
  return sum
if __name__ == "__main__":
  profile.run("b()")

輸出結(jié)果:

   <br data-filtered="filtered"> 104 function calls in 0.094 seconds
 
Ordered by: standard name
 
ncalls tottime percall cumtime percall filename:lineno(function)
   1  0.000  0.000  0.094  0.094 :0(exec)
   1  0.000  0.000  0.000  0.000 :0(setprofile)
   1  0.000  0.000  0.094  0.094 <string>:1(<module>)
   1  0.000  0.000  0.094  0.094 profile:0(b())
   0  0.000       0.000     profile:0(profiler)
  99  0.094  0.001  0.094  0.001 test.py:15(a)
   1  0.000  0.000  0.094  0.094 test.py:21(b)

其中輸出每列的具體解釋如下:

●ncalls:表示函數(shù)調(diào)用的次數(shù);

●tottime:表示指定函數(shù)的總的運行時間,除掉函數(shù)中調(diào)用子函數(shù)的運行時間;

●percall:(第一個 percall)等于 tottime/ncalls;

●cumtime:表示該函數(shù)及其所有子函數(shù)的調(diào)用運行的時間,即函數(shù)開始調(diào)用到返回的時間;

●percall:(第二個 percall)即函數(shù)運行一次的平均時間,等于 cumtime/ncalls;

●filename:lineno(function):每個函數(shù)調(diào)用的具體信息;

如果需要將輸出以日志的形式保存,只需要在調(diào)用的時候加入另外一個參數(shù)。如 profile.run(“profileTest()”,”testprof”)。

命令行

如果我們不想在程序中調(diào)用profile庫使用,可以在命令行使用命令。

import os

def a():
  sum = 0
  for i in range(1, 10001):
    sum += i
  return sum

def b():
  sum = 0
  for i in range(1, 100):
    sum += a()
  return sum

print b()

運行命令查看性能分析結(jié)果

python -m cProfile test.py

將性能分析結(jié)果保存到result文件

python -m cProfile -o result test.py

使用pstats來格式化顯示結(jié)果

python -c "import pstats; p=pstats.Stats('reslut); p.print_stats()"

python -c "import pstats; p=pstats.Stats('result'); p.sort_stats('time').print_stats()

sort_stats支持以下參數(shù):

calls, cumulative, file, line, module, name, nfl, pcalls, stdname, time

測試示例:在代碼中直接使用profile與stats

import os
def a():
	sum = 0
for i in range(1, 10001):
	sum += i
return sum
def b():
	sum = 0
for i in range(1, 100):
	sum += a()
return sum
print b()
import cProfile# cProfile.run("b()")
cProfile.run("b()", "result")
import pstats
pstats.Stats('result').sort_stats(-1).print_stats()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python調(diào)用DeepSeek?API的完整操作指南

    Python調(diào)用DeepSeek?API的完整操作指南

    本文將詳細介紹如何使用?Python?調(diào)用?DeepSeek?API,實現(xiàn)流式對話并保存對話記錄,相比?Go?版本,Python?實現(xiàn)更加簡潔優(yōu)雅,適合快速開發(fā)和原型驗證,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2025-02-02
  • 在python中將list分段并保存為array類型的方法

    在python中將list分段并保存為array類型的方法

    今天小編就為大家分享一篇在python中將list分段并保存為array類型的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python實例解析圖像形態(tài)學(xué)運算技術(shù)

    Python實例解析圖像形態(tài)學(xué)運算技術(shù)

    形態(tài)學(xué)處理方法是基于對二進制圖像進行處理的,卷積核決定圖像處理后的效果。本文將為大家詳細介紹一下OpenCV中的圖像形態(tài)學(xué),感興趣的可以了解一下
    2022-03-03
  • python中的裝飾器該如何使用

    python中的裝飾器該如何使用

    裝飾器經(jīng)常被用于有切面需求的場景,較為經(jīng)典的有插入日志、性能測試、事務(wù)處理等。裝飾器是解決這類問題的絕佳設(shè)計,有了裝飾器,我們就可以抽離出大量函數(shù)中與函數(shù)功能本身無關(guān)的雷同代碼并繼續(xù)重用。裝飾器的作用就是為已經(jīng)存在的對象添加額外的功能。
    2021-06-06
  • python能否java成為主流語言嗎

    python能否java成為主流語言嗎

    在本篇文章里小編給大家分享的是一篇關(guān)于python能否java成為主流語言的相關(guān)知識點,有興趣的朋友們參考下。
    2020-06-06
  • LyScript實現(xiàn)指令查詢功能的示例代碼

    LyScript實現(xiàn)指令查詢功能的示例代碼

    對LyScript自動化插件進行二次封裝,可以實現(xiàn)從內(nèi)存中讀入目標(biāo)進程解碼后的機器碼。所以本文為大家介紹了如何實現(xiàn)LyScript指令查詢功能,需要的可以參考一下
    2022-09-09
  • 淺談tensorflow 中tf.concat()的使用

    淺談tensorflow 中tf.concat()的使用

    今天小編就為大家分享一篇淺談tensorflow 中tf.concat()的使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • web.py在SAE中的Session問題解決方法(使用mysql存儲)

    web.py在SAE中的Session問題解決方法(使用mysql存儲)

    這篇文章主要介紹了web.py在SAE中的Session問題解決方法(使用mysql存儲),本文直接給出實現(xiàn)代碼,代碼中包含詳細注釋,需要的朋友可以參考下
    2015-06-06
  • python文件和文件夾復(fù)制函數(shù)

    python文件和文件夾復(fù)制函數(shù)

    這篇文章主要為大家詳細介紹了python文件和文件夾復(fù)制函數(shù)的實現(xiàn)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Python實現(xiàn)從log日志中提取ip的方法【正則提取】

    Python實現(xiàn)從log日志中提取ip的方法【正則提取】

    這篇文章主要介紹了Python實現(xiàn)從log日志中提取ip的方法,涉及Python文件讀取、數(shù)據(jù)遍歷、正則匹配等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03

最新評論

江门市| 额尔古纳市| 张家界市| 获嘉县| 舞钢市| 大宁县| 霍城县| 海林市| 西华县| 湛江市| 德安县| 合山市| 红原县| 古浪县| 天峻县| 池州市| 神农架林区| 西宁市| 弥渡县| 嵊泗县| 缙云县| 固安县| 杭州市| 红桥区| 汽车| 五家渠市| 九龙县| 恭城| 乡城县| 翁牛特旗| 青浦区| 北京市| 五家渠市| 铜陵市| 霍州市| 宾川县| 黎城县| 黑水县| 府谷县| 辉县市| 汕尾市|