某些機構能幫助我如何查找python中的代碼需要多少時間和多少內存?計算python中的代碼的計算時間和內存
回答
使用此用於計算時間:
import time
time_start = time.clock()
#run your code
time_elapsed = (time.clock() - time_start)
作爲由Python文檔引用:
time.clock()
在Unix,返回當前處理器時間點數以秒爲單位浮點數 。精確度,實際上「處理器時間」含義的定義取決於具有相同名稱的C函數的定義,但在任何情況下,這都是 用於基準測試Python或定時算法的功能。
在Windows上,此函數根據 Win32函數QueryPerformanceCounter()以 作爲浮點數第一次調用該函數以來的時間間隔秒數。分辨率通常爲 ,優於1微秒。
參考:http://docs.python.org/library/time.html
使用此用於計算存儲器:
import resource
resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
這會得到他的時間,但不會使用記憶。 – edhedges 2012-08-09 15:37:02
感謝名單...我使用Windows Python和我覺得你描述的內存計算是Linux? – 2012-08-09 15:51:09
它也適用於Windows。閱讀上面的描述。 – 2012-08-09 15:59:57
使用一個內存分析器等孔雀
>>> from guppy import hpy; h=hpy()
>>> h.heap()
Partition of a set of 48477 objects. Total size = 3265516 bytes.
Index Count % Size % Cumulative % Kind (class/dict of class)
0 25773 53 1612820 49 1612820 49 str
1 11699 24 483960 15 2096780 64 tuple
2 174 0 241584 7 2338364 72 dict of module
3 3478 7 222592 7 2560956 78 types.CodeType
4 3296 7 184576 6 2745532 84 function
5 401 1 175112 5 2920644 89 dict of class
6 108 0 81888 3 3002532 92 dict (no owner)
7 114 0 79632 2 3082164 94 dict of type
8 117 0 51336 2 3133500 96 type
9 667 1 24012 1 3157512 97 __builtin__.wrapper_descriptor
<76 more rows. Type e.g. '_.more' to view.>
>>> h.iso(1,[],{})
Partition of a set of 3 objects. Total size = 176 bytes.
Index Count % Size % Cumulative % Kind (class/dict of class)
0 1 33 136 77 136 77 dict (no owner)
1 1 33 28 16 164 93 list
2 1 33 12 7 176 100 int
>>> x=[]
>>> h.iso(x).sp
0: h.Root.i0_modules['__main__'].__dict__['x']
有一個非常好的庫叫做jackedCodeTimerPy計時你的代碼。然後你應該使用Daniel Li建議的資源包。
jackedCodeTimerPy給像
label min max mean total run count
------- ----------- ----------- ----------- ----------- -----------
imports 0.00283813 0.00283813 0.00283813 0.00283813 1
loop 5.96046e-06 1.50204e-05 6.71864e-06 0.000335932 50
我喜歡它是如何給你就可以了統計和定時器運行次數真的好報告。
它使用簡單。如果我想測量時間碼進入for循環,我只需執行以下操作:
from jackedCodeTimerPY import JackedTiming
JTimer = JackedTiming()
for i in range(50):
JTimer.start('loop') # 'loop' is the name of the timer
doSomethingHere = 'This is really useful!'
JTimer.stop('loop')
print(JTimer.report()) # prints the timing report
您也可以同時運行多個定時器。
JTimer.start('first timer')
JTimer.start('second timer')
do_something = 'amazing'
JTimer.stop('first timer')
do_something = 'else'
JTimer.stop('second timer')
print(JTimer.report()) # prints the timing report
還有更多的使用示例在回購。希望這可以幫助。
- 1. 計算時間代碼的複雜性
- 2. Python和Sklearn更快的計算時間
- 3. Python計算器代碼
- 4. 計算的代碼
- 5. 有沒有辦法計算excel計算的成本(時間和內存)?
- 6. Python中的區間計算
- 7. 代碼來計算在納秒時間
- 8. python:計算時間進度
- 9. 如何在計時器中計算所計算的時間?
- 10. 計算緩存內存命中和Miss,並計算緩存中的行數
- 11. 計算閃存中的已用時間
- 12. 計算時間
- 13. 時間計算
- 14. 時間計算
- 15. 計算時間
- 16. 計算C中的時間
- 17. LINQ中的時間計算
- 18. 計時器 - 計算時間
- 19. SQL * Plus代碼總計和計算列
- 20. 在Python中計算內存碎片
- 21. 計算python中的小時和分鐘
- 22. 計算時間總和
- 23. gnuplot:xdata時間和計算
- 24. 計算時間和結果
- 25. Drupal計算字段 - 計算時間
- 26. Python中,計算計算的狀態減慢計算本身
- 27. 計算算法時間
- 28. 算法來計算圖像的代碼
- 29. 如何評估CUDA內核的內存時間和計算時間?
- 30. 時間計算和計數與MySQL
見[這個問題](http://stackoverflow.com/questions/897941/python-equivalent-of-phps-memory-get-usage),用於計算所使用的總存儲器。 – machow 2012-08-09 15:43:55
我的回答對你有幫助嗎? – 2012-10-03 15:57:54
的確是在等待時間。 – 2012-10-04 20:08:13