日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python如何做代碼性能分析

瀏覽:185日期:2022-06-21 09:39:40

上一篇文章我們介紹了基準(zhǔn)測(cè)試,通過基準(zhǔn)測(cè)試可以發(fā)現(xiàn)程序變慢了,那么是因?yàn)槭裁丛驅(qū)е滦阅茏兟模枰M(jìn)一步做代碼性能分析。python同樣提供了性能分析工具。

cProfile

cProfile是python默認(rèn)的性能分析器,他只測(cè)量CPU時(shí)間,并不關(guān)心內(nèi)存消耗和其他與內(nèi)存相關(guān)聯(lián)的信息。

from time import sleepimport randomdef random_list(start, end, length): ''' 生成隨機(jī)列表 :param start: 隨機(jī)開始數(shù) :param end: 隨機(jī)結(jié)束數(shù) :param length: 列表長(zhǎng)度 ''' data_list = [] for i in range(length):data_list.append(random.randint(start, end)) return data_listdef bubble_sort(arr): ''' 冒泡排序: 對(duì)列表進(jìn)行排序 :param arr 列表 ''' n = len(arr) sleep(1) for i in range(n):for j in range(0, n - i - 1): if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j] return arrif __name__ == ’__main__’: get_data_list = random_list(1, 99, 10) import cProfile cProfile.run(’bubble_sort({})’.format(get_data_list))

繼續(xù)使用上一篇文章中的例子,引用cProfile模塊,run()方法參數(shù)說明。

run(statement, filename=None, sort=-1)

statement: 需要測(cè)試的代碼或者函數(shù)(函數(shù)名) fielname: 結(jié)果保存的位置, 默認(rèn)為stdout sort: 結(jié)果排序方法,常用的有cumtime: 累積時(shí)間, name: 函數(shù)名, line: 行號(hào)

為了使結(jié)果統(tǒng)計(jì)出耗時(shí)部分,我們加了sleep,結(jié)果如下:

❯ python demo.py 6 function calls in 1.004 seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function)1 0.000 0.000 1.004 1.004 <string>:1(<module>)1 0.000 0.000 1.004 1.004 demo.py:19(bubble_sort)1 0.000 0.000 1.004 1.004 {built-in method builtins.exec}1 0.000 0.000 0.000 0.000 {built-in method builtins.len}1 1.004 1.004 1.004 1.004 {built-in method time.sleep}1 0.000 0.000 0.000 0.000 {method ’disable’ of ’_lsprof.Profiler’ objects} 6 function calls in 1.004 seconds 6個(gè)函數(shù)調(diào)用被監(jiān)控,耗時(shí)1.004秒。 ncalls 函數(shù)被調(diào)用的次數(shù)。如果這一列有兩個(gè)值,就表示有遞歸調(diào)用,第二個(gè)值是原生調(diào)用次數(shù),第一個(gè)值是總調(diào)用次數(shù)。 tottime 函數(shù)內(nèi)部消耗的總時(shí)間。(可以幫助優(yōu)化) percall 是tottime除以ncalls,一個(gè)函數(shù)每次調(diào)用平均消耗時(shí)間。 cumtime 之前所有子函數(shù)消費(fèi)時(shí)間的累計(jì)和。 filename:lineno(function) 被分析函數(shù)所在文件名、行號(hào)、函數(shù)名。line_profiler

line_profiler 可以提供有關(guān)時(shí)間是如何在各行之間分配的信息,直白一點(diǎn)就是給出程序每行的耗時(shí),在無法確定哪行語句最浪費(fèi)時(shí)間,這很有用。

line_profiler是一個(gè)第三方模塊,需要安裝。

https://github.com/pyutils/line_profiler

from time import sleepimport randomdef random_list(start, end, length): ''' 生成隨機(jī)列表 :param start: 隨機(jī)開始數(shù) :param end: 隨機(jī)結(jié)束數(shù) :param length: 列表長(zhǎng)度 ''' data_list = [] for i in range(length):data_list.append(random.randint(start, end)) return data_list@profiledef bubble_sort(arr): ''' 冒泡排序: 對(duì)列表進(jìn)行排序 :param arr 列表 ''' n = len(arr) sleep(1) for i in range(n):for j in range(0, n - i - 1): if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j] return arrif __name__ == ’__main__’: get_data_list = random_list(1, 99, 10) bubble_sort(get_data_list)

給需要監(jiān)控的函數(shù)加上@profile 裝飾器。通過kernprof命令運(yùn)行文件(安裝完line_profiler生成的命令)。

參數(shù)說明:

-l:以使用函數(shù)line_profiler -v:以立即將結(jié)果打印到屏幕

運(yùn)行結(jié)果:

kernprof -l -v demo.pyWrote profile results to demo.py.lprofTimer unit: 1e-06 sTotal time: 1.00416 sFile: demo.pyFunction: bubble_sort at line 18Line # Hits Time Per Hit % Time Line Contents============================================================== 18 @profile 19 def bubble_sort(arr): 20 ''' 21 冒泡排序: 對(duì)列表進(jìn)行排序 22 :param arr 列表 23 ''' 24 1 8.0 8.0 0.0 n = len(arr) 25 1 1004030.0 1004030.0 100.0 sleep(1) 2611 15.0 1.4 0.0 for i in range(n): 2755 44.0 0.8 0.0 for j in range(0, n - i - 1): 2845 41.0 0.9 0.0 if arr[j] > arr[j + 1]: 2920 21.0 1.1 0.0 arr[j], arr[j + 1] = arr[j + 1], arr[j] 30 1 1.0 1.0 0.0 return arr

輸出非常直觀,分成了6列。

Line #:運(yùn)行的代碼行號(hào)。 Hits:代碼行運(yùn)行的次數(shù)。 Time:代碼行的執(zhí)行時(shí)間,單位為微秒。 Per Hit:Time/Hits。 % Time:代碼行總執(zhí)行時(shí)間所占的百分比。 Line Contents:代碼行的內(nèi)容。

只需查看% Time列,就可清楚地知道時(shí)間都花在了什么地方。

總結(jié)

性能測(cè)試分析站在項(xiàng)目層面是一個(gè)很龐大的話題,以前為測(cè)試工程師,關(guān)注的是性能工具的使用,以及用戶維度的性能[1];作為開發(fā)工程師,每個(gè)功能都是由一個(gè)個(gè)函數(shù)/方法組成,我們?nèi)シ治雒總€(gè)函數(shù)/方法,甚至是每行代碼的耗時(shí),才能更好的進(jìn)行代碼層面的性能優(yōu)化。

以上就是python如何做代碼性能分析的詳細(xì)內(nèi)容,更多關(guān)于python 代碼性能分析的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99久久精品网| 日韩激情综合| 伊人精品一区| 精品一区在线| 日韩av三区| 97精品一区二区| 欧美日韩尤物久久| 免费看精品久久片| 美女av一区| 欧洲激情综合| 日韩高清不卡在线| 精品国产乱码久久久久久樱花| 播放一区二区| 亚洲区第一页| 国产传媒在线观看| 在线观看亚洲精品福利片| 国产精品久久久久久模特| 美女福利一区二区三区| 黄色av日韩| 国产午夜久久av| 久久久精品久久久久久96| 一区二区三区四区精品视频| 久久亚州av| 99国产精品| 美女视频网站久久| 91精品91| 老司机精品视频在线播放| 亚洲精品小说| 免费在线欧美黄色| 免费在线欧美视频| 日产精品一区二区| 亚洲精品影院在线观看| caoporn视频在线| 水蜜桃久久夜色精品一区的特点| 免费在线亚洲欧美| 综合一区av| 久久国产中文字幕| 欧美日韩在线精品一区二区三区激情综合| 999久久久国产精品| 久久精品超碰| 香蕉久久久久久久av网站| 精品午夜av| 亚州精品视频| 久久精品国产亚洲夜色av网站| 国产精品亚洲欧美一级在线 | 欧美精品成人| 亚洲综合二区| 超碰99在线| 国产精品巨作av| 亚洲69av| 亚洲欧美日韩国产一区| 午夜久久中文| 国精品产品一区| 欧美自拍一区| 蜜桃视频一区二区| 中文字幕一区二区三区四区久久| 成人日韩在线| 精品国产亚洲日本| 国产九九精品| 日韩美女国产精品| 久久亚洲图片| 亚洲成人三区| 精品国模一区二区三区| 国产精品啊v在线| 免费人成在线不卡| 激情婷婷综合| 日本欧美不卡| 色乱码一区二区三区网站| 97久久中文字幕| 在线视频亚洲| 免费视频一区三区| 久久久久蜜桃| 免费在线日韩av| 国产精成人品2018| 国产探花一区二区| 日本亚洲欧美天堂免费| 老司机精品久久| 亚洲精品电影| 欧美女激情福利| 欧美精选一区二区三区| 久久国产亚洲精品| 久久男女视频| 欧美成人基地| 播放一区二区| 99成人在线视频| 国产91一区| 亚洲福利久久| 亚洲第一精品影视| 欧美大黑bbbbbbbbb在线| 久久国产亚洲| 激情婷婷综合| 国产一级久久| 国产精品99免费看| 久久影院一区| 国产亚洲在线观看| 免费在线看一区| 日本一区二区三区中文字幕| 亚洲ab电影| 日本午夜精品视频在线观看| 日韩黄色免费网站| 国产欧美一区二区三区米奇| 国产免费播放一区二区| 欧美国产极品| 精品国产aⅴ| www.九色在线| 99国产精品免费视频观看| 999久久久91| 亚洲电影在线一区二区三区| 红桃视频亚洲| 亚州国产精品| 国产精品第一| 欧美gv在线| 国产亚洲精品久久久久婷婷瑜伽| 亚洲三级精品| 日韩福利在线观看| 精品国产不卡| 久久精品中文| 久久不射中文字幕| 7777精品| 首页国产精品| 午夜欧美精品久久久久久久| 日韩中文av| 国产一卡不卡| 欧美aⅴ一区二区三区视频| 日韩欧美在线中字| 最新亚洲一区| 日本精品另类| 国产一区二区精品久| 久久精品国语| 日本在线不卡视频| 精品女同一区二区三区在线观看| 日韩黄色大片网站| 国产亚洲激情| 国产精品久久久久久久久久白浆| 最新中文字幕在线播放| 日韩午夜高潮| 国产精品最新| www成人在线视频| 亚洲综合专区| 福利视频一区| 视频一区二区三区入口| 麻豆精品久久久| 亚洲大全视频| 国产精品一区二区三区av麻| 日韩在线短视频| 亚洲v天堂v手机在线| 中文在线资源| 午夜亚洲福利| 日韩一区三区| 中文视频一区| 久久精品一本| 美女久久网站| 捆绑调教美女网站视频一区| 欧美色图国产精品| 日本免费在线视频不卡一不卡二| 日韩av自拍| 蜜桃久久久久久| 久久精品国产福利| 麻豆亚洲精品| 中文在线а√天堂 | 免费在线成人网| 四季av一区二区凹凸精品| 日韩午夜在线| 大香伊人久久精品一区二区| 快she精品国产999| 亚洲精品福利电影| 蜜桃一区二区三区在线| 日韩免费看片| 久久精品97| 亚洲少妇一区| 久久男人天堂| 欧美日韩在线精品一区二区三区激情综合 | 麻豆精品在线观看| 亚洲少妇诱惑| 日本久久精品| 日韩avvvv在线播放| 不卡av一区二区| 成人在线视频中文字幕| 日本亚洲不卡| 91精品国产福利在线观看麻豆| 国产免费播放一区二区| 亚洲精品99| 色欧美自拍视频| 国产午夜久久av| 三级在线观看一区二区| 日韩国产网站| 精品久久亚洲| 欧美在线日韩| 亚洲制服少妇| 日韩欧美一区二区三区免费看| 久久国产三级精品| 中文字幕一区二区精品区| 欧美日韩在线网站| 高清av不卡| 国产精品啊啊啊| 日韩高清国产一区在线| 亚洲深爱激情| 99精品视频在线观看免费播放| 老司机精品视频网| 国产精品视频一区二区三区综合|