確定運行腳本的計算機是否使用交換內存的最佳方法是什麼?它應該儘可能跨平臺。一種解決方案是運行一個像top
這樣的程序作爲子程序,但我希望有更好的方法。在python中檢測交換
2
A
回答
3
您可以使用模塊psutil
。它不是標準庫中的模塊,但您必須使用pip
程序包管理器進行安裝。
pip install psutil
交換使用數據可以使用psutil.swap_memory()
收集。它返回一個指定的元組。
>>> import psutil
>>> psutil.swap_memory()
sswap(total=2097147904L, used=886620160L, free=1210527744L, percent=42.3, sin=1050411008, sout=1906720768)
3
我在這個帖子中看到了Stackoverflow: Profile Memory Allocation in Python這個關於如何實時記錄你的記憶的解釋。然後使用mrpof
直接打印成一個不錯的圖表。 (該線程有點舊,但我仍然準確)。
這裏是模塊的官方文檔:memory profiler pypi documentation
如果你不想閱讀的文檔,您必須首先通過安裝的軟件包:
$ easy_install -U memory_profiler # pip install -U memory_profiler
,然後用它像這樣的腳本:
$ mprof run you_script_python.py
$ mprof plot
即產生一個文件是這樣的:(source)
或者更簡單地說是這樣的:
$ python -m memory_profiler you_script_python.py
將產生以下的輸出:
Line # Mem usage Increment Line Contents
==============================================
3 @profile
4 5.97 MB 0.00 MB def my_func():
5 13.61 MB 7.64 MB a = [1] * (10 ** 6)
6 166.20 MB 152.59 MB b = [2] * (2 * 10 ** 7)
7 13.61 MB -152.59 MB del b
8 13.61 MB 0.00 MB return a
它也適用於Windows。根據作者Fabian Pedregosa,模塊memory profiler
是跨平臺的:Stackoverflow: Which Python memory profiler is recommended?
對不起,所有鏈接!
相關問題
- 1. 如何檢測熱交換
- 2. 檢測的iDevices和交換信息
- 3. 檢測python腳本在ipython中以交互方式運行時
- 4. 在jQuery中檢測頁面提交
- 5. 在XCode中檢測UIWebView表單提交
- 6. 在lispbuilder-sdl中檢測曲面相交
- 7. Python:檢測無法在Windows 7中檢測到的目錄
- 8. 在Python中的菜單之間交換
- 9. 子進程檢測在Python
- 10. 如何檢測交換不存在與py-amqp
- 11. Java - 在運行時檢測內存交換
- 12. 檢測系統負載,重點是Linux中的「交換抖動」
- 13. 在Python龜遊戲中檢測碰撞
- 14. 在Python中檢測Arduino端口
- 15. 在Python中檢測數據類型
- 16. 在OpenCV和Python中的瞳孔檢測
- 17. 在Python中可靠地檢測Windows
- 18. 在Python中使用win32api檢測按鍵
- 19. 在Python中檢測Windows註銷
- 20. Opencv在Python中檢測四邊形
- 21. Python交換功能
- 22. python自檢 - 如何檢測我在
- 23. 在UITextView中檢測換行符
- 24. python opencv - blob檢測或圓圈檢測
- 25. Python頻率檢測
- 26. OpenCV檢測輪廓相交
- 27. 檢測HTML表單提交
- 28. 檢測與swift交談
- 29. 爲什麼Python在交換變量時交換變量ID
- 30. 圖像中的交叉檢測
命令'免費-m'可能是你的興趣,爲[這篇文章nixCraft(http://www.cyberciti.biz/faq/linux-add-a-swap-中所看到的file-howto /),section *我如何驗證swap是否被激活?* – grooveplex
最跨平臺的方法是佔用並填充內存,直到你得到異常,並在最後捕獲異常並打印'我使用交換內存' – fghj
你可以使用'psutil'。它不在標準庫中,但它是跨平臺的。你可以使用'psutil.swap_memory()'獲得交換內存的信息。 – 2016-06-11 08:50:52