我正在尋找一種方法來測量我的python程序的CPU時間。我環顧四周,看來我一直在測量功能,我可以在窗口上測量掛鐘時間。有沒有一種方法可以測量python窗口的CPU時間?謝謝。窗口上的Python CPU時間
回答
time.process_time()
https://www.python.org/dev/peps/pep-0418/
新time.process_time()函數作爲一個便攜式計數器 始終測量CPU時間(不包括睡眠時經過的時間),並有 最佳可用分辨率。
早些時候回答想要的任何人使用timeit()來平均:
我寫了這個,而最近學習Python的。這是一個timeit.Timer類迭代timeit()通過函數進行平均;在我的研究時間似乎很容易搞砸和timeit()顯然是棘手的工作(雖然更容易在命令行工作)。這工作。
還應注意這個答案暗示最好的辦法是time.process_time()爲Python 3.3+和提醒.default_timer()是掛鐘時間:
https://stackoverflow.com/a/15176730/3981745
""" Sum a range with timing/comparisons.
- Manually summing from low..high : a beginner's loop with no algorithms experience
- Python's sum() - does the same thing for an "efficient" programmer
- Fast sum - a programmer with math focus
- Timing calls (easy to do wrong)
This is a trivial formula to demonstrate what a little math can do; for games this type of optimization is critical. It could probably be even more optimized.
"""
def slow_way(lo, hi):
s=0
for i in range(lo, hi+1):
s+=i
return s
def fast_way(lo, hi):
lph=lo+hi # lo plus hi
hmlpo=hi-lo+1 # hi minus lo plus one
pairs=hmlpo//2
#print("-", lo,hi,pairs, pairs*lph, (lo+pairs)*(hmlpo%2))
return (pairs*lph + (lo+pairs)*(hmlpo%2))
import timeit
# 'builtin' hack doesn't seem to work
#import __builtin__
#__builtin__.__dict__.update(locals())
ranges=[]
ranges.append((1,10,))
ranges.append((2,10,))
ranges.append((3,10,))
ranges.append((4,10,))
ranges.append((5,10,))
ranges.append((32,10032,))
print("Calculation check...")
print("slow : sum : fast : should all match")
for tupl in ranges:
l=tupl[0]; h=tupl[1]
print("{} : {} : {}".format(slow_way(l,h), sum(range(l, h+1)), fast_way(l,h)))
iters=100000
print("-"*20 +"\nTime compare ({} iterations) : lower is better".format(iters))
slow=timeit.Timer("slow_way(1,101)", "from __main__ import slow_way")
print("slow: {0:.6f}".format(slow.timeit(number=iters)))
# functions include last number, range should be +1
s=timeit.Timer("sum(range(1,102))", "")
print(" sum: {0:.6f}".format(s.timeit(number=iters)))
fast=timeit.Timer("fast_way(1,101)", "from __main__ import fast_way")
print(" fast: {0:.6f}".format(fast.timeit(number=iters)))
輸出
Calculation check...
slow : sum : fast : should all match
55 : 55 : 55
54 : 54 : 54
52 : 52 : 52
49 : 49 : 49
45 : 45 : 45
50325032 : 50325032 : 50325032
--------------------
Time compare (100000 iterations) : lower is better
slow: 4.719885
sum: 0.963886
fast: 0.343524
time.clock()
在Windows上,您可以使用time.clock()
,它基本上使用Windows API中的QueryPerformanceCounter()
。
QueryPerformanceCounter的():
檢索性能計數器,這是可以被用於時間間隔測量高分辨率(<爲1us)時間戳的當前值。
下面是從python文檔爲time.clock的詳細說明:
在Unix,返回當前處理器時間以秒錶示的浮點數。精確性,實際上「處理器時間」含義的定義取決於具有相同名稱的C函數的精確性,但無論如何,這是用於基準測試Python或時序算法的函數。 在Windows上,此函數基於Win32函數QueryPerformanceCounter(),將自第一次調用此函數以來的壁鐘時間秒作爲浮點數返回。分辨率通常優於1微秒。
timeit
如果你需要一些更準確的有timeit
。這個答案解釋了timeit
的好處:https://stackoverflow.com/a/17579466/2394967
- 1. Python日誌時間窗口
- 2. 弗林克流上的時間窗口
- 3. 窗口上的python settings.py
- 4. 窗口上的python + gtk3?
- 5. 在改變窗口時間的同時,在python時鐘中保持窗口時間。
- 6. 使用Python日期時間計算時間窗口
- 7. python命令安排12.00h到13.30h之間的時間窗口
- 8. 在固定時間窗口上受固定時間窗限制的可移動時間窗
- 9. Nesper在使用win窗口時CPU /內存使用率高:時間
- 10. Python datetime.strptime()吃了很多CPU時間
- 11. 在窗口上的python圖像比較
- 12. 窗口內部的C++ CPU圖形
- 13. DELPHI IDE - 從彈出的「CPU」窗口
- 14. 使用100%cpu的WCF窗口服務
- 15. 窗口上的Python子流程輸出?
- 16. 窗口上的Python解釋器版本
- 17. 在主窗口前瞬間彈出Python Tkinter小窗口
- 18. CPU花在CPU上的時間比現實中更快
- 19. 求和特定的時間窗口在Python熊貓
- 20. 在Python中搜索特定時間窗口中的推文
- 21. Python窗口焦點
- 22. 選擇時間窗和滑動時間窗口
- 23. PyGObject在Python 3上的窗口
- 24. gtk 2.7窗口上的python包裝
- 25. AIX上的CPU用戶時間和系統時間
- 26. 如何在Windows上測量CPU時間?
- 27. 在django上減少用戶CPU時間
- 28. 窗口上的進程間通信
- 29. CPU時間測量
- 30. 放棄CPU時間
我不介意你的編輯......或者我可以刪除多餘的自己,如果人們認爲更好。 –