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

您的位置:首頁技術文章
文章詳情頁

Python如何給你的程序做性能測試

瀏覽:26日期:2022-07-15 18:51:21

問題

你想測試你的程序運行所花費的時間并做性能測試。

解決方案

如果你只是簡單的想測試下你的程序整體花費的時間, 通常使用Unix時間函數就行了,比如:

bash % time python3 someprogram.pyreal 0m13.937suser 0m12.162ssys 0m0.098sbash %

如果你還需要一個程序各個細節的詳細報告,可以使用 cProfile 模塊:

bash % python3 -m cProfile someprogram.py 859647 function calls in 16.016 CPU seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function) 263169 0.080 0.000 0.080 0.000 someprogram.py:16(frange) 513 0.001 0.000 0.002 0.000 someprogram.py:30(generate_mandel) 262656 0.194 0.000 15.295 0.000 someprogram.py:32(<genexpr>) 1 0.036 0.036 16.077 16.077 someprogram.py:4(<module>) 262144 15.021 0.000 15.021 0.000 someprogram.py:4(in_mandelbrot) 1 0.000 0.000 0.000 0.000 os.py:746(urandom) 1 0.000 0.000 0.000 0.000 png.py:1056(_readable) 1 0.000 0.000 0.000 0.000 png.py:1073(Reader) 1 0.227 0.227 0.438 0.438 png.py:163(<module>) 512 0.010 0.000 0.010 0.000 png.py:200(group) ...bash %

不過通常情況是介于這兩個極端之間。比如你已經知道代碼運行時在少數幾個函數中花費了絕大部分時間。 對于這些函數的性能測試,可以使用一個簡單的裝飾器:

# timethis.pyimport timefrom functools import wrapsdef timethis(func): @wraps(func) def wrapper(*args, **kwargs): start = time.perf_counter() r = func(*args, **kwargs) end = time.perf_counter() print(’{}.{} : {}’.format(func.__module__, func.__name__, end - start)) return r return wrapper

要使用這個裝飾器,只需要將其放置在你要進行性能測試的函數定義前即可,比如:

>>> @timethis... def countdown(n):... while n > 0:... n -= 1...>>> countdown(10000000)__main__.countdown : 0.803001880645752>>>

要測試某個代碼塊運行時間,你可以定義一個上下文管理器,例如:

from contextlib import contextmanager@contextmanagerdef timeblock(label): start = time.perf_counter() try: yield finally: end = time.perf_counter() print(’{} : {}’.format(label, end - start))

下面是使用這個上下文管理器的例子:

>>> with timeblock(’counting’):... n = 10000000... while n > 0:... n -= 1...counting : 1.5551159381866455>>>

對于測試很小的代碼片段運行性能,使用 timeit 模塊會很方便,例如:

>>> from timeit import timeit>>> timeit(’math.sqrt(2)’, ’import math’)0.1432319980012835>>> timeit(’sqrt(2)’, ’from math import sqrt’)0.10836604500218527>>>

timeit 會執行第一個參數中語句100萬次并計算運行時間。 第二個參數是運行測試之前配置環境。如果你想改變循環執行次數, 可以像下面這樣設置 number 參數的值:

>>> timeit(’math.sqrt(2)’, ’import math’, number=10000000)1.434852126003534>>> timeit(’sqrt(2)’, ’from math import sqrt’, number=10000000)1.0270336690009572>>>

討論

當執行性能測試的時候,需要注意的是你獲取的結果都是近似值。 time.perf_counter() 函數會在給定平臺上獲取最高精度的計時值。 不過,它仍然還是基于時鐘時間,很多因素會影響到它的精確度,比如機器負載。 如果你對于執行時間更感興趣,使用 time.process_time() 來代替它。例如:

from functools import wrapsdef timethis(func): @wraps(func) def wrapper(*args, **kwargs): start = time.process_time() r = func(*args, **kwargs) end = time.process_time() print(’{}.{} : {}’.format(func.__module__, func.__name__, end - start)) return r return wrapper

最后,如果你想進行更深入的性能分析,那么你需要詳細閱讀 time 、timeit 和其他相關模塊的文檔。 這樣你可以理解和平臺相關的差異以及一些其他陷阱。 還可以參考13.13小節中相關的一個創建計時器類的例子。

以上就是Python如何給你的程序做性能測試的詳細內容,更多關于Python做性能測試的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产传媒在线| 91久久亚洲| 精品在线91| 国产成人久久| 国产欧美日韩综合一区在线播放| 日韩精品一区二区三区免费观看| 老牛影视一区二区三区| 九九色在线视频| 午夜国产一区二区| 91视频久久| 亚洲一区二区三区高清| 日本在线不卡视频| 精品久久亚洲| 久久精品国产大片免费观看| 免费久久久久久久久| 免费国产亚洲视频| 国产精品综合| 欧美+亚洲+精品+三区| 亚洲视频二区| 麻豆传媒一区二区三区| 久久美女性网| 日韩精品国产欧美| 国产精品一区三区在线观看| 伊人久久高清| 日本成人中文字幕| 你懂的国产精品| 日韩高清二区| 国产a久久精品一区二区三区| 亚洲第一精品影视| **爰片久久毛片| 日韩久久视频| 日本一区二区中文字幕| 成人小电影网站| 日韩精品免费观看视频| 精品国产免费人成网站| 亚洲我射av| 亚洲天堂1区| 亚洲深深色噜噜狠狠爱网站 | 亚洲精品一二三区区别| 日韩精品五月天| 香蕉精品视频在线观看| 国产福利一区二区精品秒拍| 午夜在线一区| 日韩午夜免费| 久久久久免费av| 精品国产亚洲一区二区三区大结局| 午夜久久福利| 久久美女性网| 日韩影院二区| 日韩国产一区二区| 成人美女视频| 精品成人18| 国产精品igao视频网网址不卡日韩| 亚洲毛片视频| 日韩午夜免费| 亚洲视频播放| 免费精品国产的网站免费观看| 亚洲精品在线影院| 91精品啪在线观看国产18| 国产aⅴ精品一区二区四区| 日本va欧美va精品发布| 亚洲一区二区三区免费在线观看| 欧美不卡视频| 黄色日韩在线| 免费在线欧美视频| 亚洲精品在线国产| 日韩一二三区在线观看| 国产日韩在线观看视频| 美女视频一区在线观看| 欧美国产视频| 国产一区二区三区成人欧美日韩在线观看| 久久av中文| 日韩免费视频| 亚洲一区国产| 欧美日韩亚洲一区| 精品日韩视频| 蜜桃tv一区二区三区| 日韩午夜高潮| 国产亚洲精品精品国产亚洲综合| 国产极品模特精品一二| 成人看片网站| 亚洲va久久| 成人亚洲精品| 欧美综合国产| 久久精品伊人| 99riav国产精品| 欧美国产日本| 亚洲无线一线二线三线区别av| 日精品一区二区三区| 韩国女主播一区二区三区| 狠狠爱www人成狠狠爱综合网| 亚洲一区二区三区免费在线观看 | 在线看片国产福利你懂的| 国产亚洲精品自拍| 成人精品高清在线视频| 日本欧美在线看| 超碰成人av| 四虎成人精品一区二区免费网站| 国产999精品在线观看| 日本亚州欧洲精品不卡| 欧美亚洲国产激情| 国产aⅴ精品一区二区三区久久| 亚洲视频综合| 日韩伦理在线一区| 美腿丝袜在线亚洲一区| 亚洲视频播放| 色婷婷精品视频| 久久亚州av| 国产欧美日韩视频在线| 在线日韩成人| 石原莉奈在线亚洲三区| 欧美a级一区| 亚洲激情中文在线| 日本不卡免费高清视频在线| 国内一区二区三区| 红杏一区二区三区| 精品一区二区三区在线观看视频 | 六月天综合网| 亚洲精品91| 日韩黄色大片| 久久久亚洲一区| 欧美日韩在线网站| 成人av二区| 国产精品婷婷| 免费精品视频在线| 中文字幕日本一区二区| 午夜视频一区二区在线观看| 亚洲精品影视| 老鸭窝毛片一区二区三区| 99国产精品久久久久久久成人热| 91成人精品| 美女久久网站| 日本久久二区| 国产在线一区不卡| 女生影院久久| 午夜av一区| 四虎精品一区二区免费| 国产精品片aa在线观看| 国产成人1区| 日韩天堂av| 国产午夜久久av| 91精品国产乱码久久久久久久| 亚洲免费精品| 亚洲人妖在线| 亚洲在线免费| 久久裸体视频| 欧美一级网址| 亚洲三级视频| 97精品资源在线观看| 亚洲视频二区| 久久99精品久久久野外观看| 日本久久二区| 99成人在线视频| 黄色日韩在线| 日韩欧美不卡| 日本不卡免费高清视频在线| 国产伦久视频在线观看| 日韩欧美字幕| 国产精品久久久久久久久久10秀 | 不卡中文字幕| 免费人成黄页网站在线一区二区| 日韩影院在线观看| 欧美日韩免费观看视频| 国产乱人伦精品一区| 日av在线不卡| 日韩av在线播放中文字幕| 欧美日韩伊人| 国产精品日本| 国产精品免费精品自在线观看| 精品久久97| av资源新版天堂在线| 麻豆久久一区二区| 国产精品啊v在线| 亚洲欧美日本日韩| 不卡一区2区| 欧美羞羞视频| 日韩av黄色在线| 婷婷精品在线| 亚洲视频国产精品| 久久久久久久欧美精品| 精品久久国产一区| 黄色成人精品网站| 国产精品日韩精品中文字幕| 日韩午夜在线| 久久精品一区二区不卡| 免费在线成人| 国产精品videossex| 99国内精品| 亚洲专区在线| 美女网站久久| 亚洲伊人影院| 97精品国产福利一区二区三区| 国产第一亚洲| 国产一区二区三区久久久久久久久| 在线看片福利| 亚洲综合图色| 久久久久久网| 免费人成在线不卡| 成人在线视频免费| 91精品啪在线观看国产18 |