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

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

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

瀏覽:28日期: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久久,三上悠亚国产精品一区二区三区
欧美aa在线观看| 久久精品资源| 尹人成人综合网| 亚洲欧美日韩国产综合精品二区| 久久高清国产| 欧美午夜三级| 成人台湾亚洲精品一区二区| 亚洲精品国产日韩| 欧美激情福利| 欧美91视频| 欧美一区二区三区激情视频| 亚洲免费观看高清完整版在线观| 成人精品视频| 久久亚洲精品伦理| 神马日本精品| 色吊丝一区二区| 久久国产亚洲精品| 精品一区免费| 在线精品亚洲| 青青在线精品| 美女尤物国产一区| 国产传媒在线| 亚洲天堂成人| 热久久国产精品| 日韩高清一级| 日本亚洲视频在线| 国产精品美女在线观看直播| 国产精品sm| bbw在线视频| 激情婷婷久久| 日韩中文欧美在线| 欧美亚洲色图校园春色| 精品午夜视频| 999国产精品视频| 亚洲综合丁香| 国产精品嫩模av在线| 91综合网人人| 久久九九99| 蜜臀a∨国产成人精品| 国产日韩在线观看视频| 麻豆国产欧美一区二区三区| 久久精品一区二区不卡| 亚洲色图网站| 精品国产一区二区三区av片| 亚洲性色视频| 日韩国产欧美在线视频| 国产精品蜜月aⅴ在线| 日韩在线综合| 三级亚洲高清视频| 国产精品成人国产| 一区二区三区视频免费观看| 日韩视频1区| 日韩精品第一区| 在线精品一区| 一区二区三区四区日本视频| 久久精品青草| 青草国产精品久久久久久| 国产一区福利| 免费一级片91| 国产91在线播放精品| 国产精品美女久久久浪潮软件| 久久国产欧美日韩精品| 成人精品天堂一区二区三区| 亚洲1区在线| 欧美aa一级| 久久激情五月婷婷| 91精品在线观看国产| 国产亚洲久久| 欧美粗暴jizz性欧美20| 国产欧美日韩免费观看| 国产综合色产| 久久爱www.| 欧美一级专区| 日韩一区欧美| 国产精品二区影院| 久色成人在线| 国产v日韩v欧美v| 日韩高清国产一区在线| 亚洲婷婷在线| 红杏一区二区三区| 亚洲不卡视频| 亚洲国产一区二区三区在线播放| 久久不见久久见中文字幕免费| 久久电影一区| 亚洲不卡系列| 日本精品国产| 亚洲综合日本| 亚洲天堂一区二区| 国产欧美亚洲一区| 综合国产精品| 欧美99久久| 国产美女高潮在线| 国产欧美一区二区色老头| 久久亚洲一区| 久久久久久免费视频| 国产精品亚洲二区| 免费视频久久| 欧美日韩尤物久久| 精品国产中文字幕第一页| 综合亚洲色图| 精品国产乱码久久久久久1区2匹| 中文视频一区| 在线日韩电影| 成人在线视频免费看| 午夜精品亚洲| 欧美不卡高清一区二区三区| 日韩精品导航| 99国产一区| 韩日一区二区三区| 日韩在线综合| 中文字幕在线免费观看视频| 国产精品一区毛片| 欧美日韩一区自拍| 日韩精品一区二区三区中文| 午夜亚洲精品| 日韩精品免费一区二区三区| 色一区二区三区| 中文字幕高清在线播放| 精品久久久久久久| 国语精品一区| 国产精品麻豆久久| 欧美韩日一区| 日韩国产一区| 中文另类视频| 欧美亚洲精品在线| 激情综合网站| 中文亚洲免费| 视频一区中文字幕国产| 视频一区在线播放| 亚洲精品影视| 亚洲狼人精品一区二区三区| 亚洲精品日韩久久| 91亚洲无吗| 国产精品xxx| 狠狠久久伊人| 日韩欧美一区二区三区在线视频| 群体交乱之放荡娇妻一区二区| 国产一区清纯| 亚洲在线成人| 日韩在线麻豆| 国产精品亚洲四区在线观看| 欧美黄色一区二区| 成人精品久久| 久久三级视频| 亚洲一区二区网站| 一区二区国产在线| 日本成人手机在线| 国产精品chinese| 中文在线а√天堂| 亚洲午夜精品久久久久久app| 丝袜亚洲精品中文字幕一区| 亚洲tv在线| 久久av中文| 日韩毛片视频| 亚洲一区二区网站| 日本91福利区| 精品网站aaa| 国产91精品对白在线播放| 亚洲少妇自拍| 日韩不卡手机在线v区| 国产毛片精品| 国产高清不卡| 在线亚洲成人| 国产亚洲一区| 天堂8中文在线最新版在线| 136国产福利精品导航网址| 男人的天堂亚洲一区| 国产精品高清一区二区| 亚洲不卡av不卡一区二区| 丝袜美腿亚洲一区二区图片| 91大神在线观看线路一区| 国产成人免费| 91精品1区| 91免费精品国偷自产在线在线| 久久久久黄色| 日本久久成人网| 日韩精品一级| 日韩欧美三级| 日韩有吗在线观看| 久久电影tv| 在线看片一区| 在线人成日本视频| 亚州av日韩av| 中文另类视频| 日韩精品国产精品| 国产亚洲一区二区手机在线观看 | 国产日韩免费| 日韩伦理一区| 日韩精品高清不卡| 日韩不卡在线| 国产图片一区| 91精品观看| 欧美交a欧美精品喷水| 亚洲精品1区2区| 精品无人区麻豆乱码久久久| 久色成人在线| 日本精品影院| 国产精品白浆| 日韩中文字幕一区二区三区| 成人福利视频|