確定運行腳本的計算機是否使用交換內存的最佳方法是什麼?它應該儘可能跨平臺。一種解決方案是運行一個像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. 在Python中檢測Windows 8.1?
- 3. 檢測的iDevices和交換信息
- 4. 在fgets中檢測換行
- 5. 檢測python腳本在ipython中以交互方式運行時
- 6. 在jQuery中檢測頁面提交
- 7. 在Facebook社交插件中檢測「Like」
- 8. 在XCode中檢測UIWebView表單提交
- 9. 在lispbuilder-sdl中檢測曲面相交
- 10. 檢測ajax提交
- 11. 在sitecustomize中檢查python交互模式
- 12. 交換柱(Python 3中)
- 13. Python:檢測無法在Windows 7中檢測到的目錄
- 14. 在python中交換二進制位
- 15. 爲什麼在Python中交換失敗?
- 16. 在Python中隨機交換文件名
- 17. 關於在Python中殺死交換機
- 18. 在Python中的菜單之間交換
- 19. 使用python在社交網絡上檢測社區
- 20. Python中的社區檢測
- 21. 子進程檢測在Python
- 22. 檢測系統負載,重點是Linux中的「交換抖動」
- 23. 如何檢測交換不存在與py-amqp
- 24. 檢測是否(交換)公用文件夾在Outlook
- 25. Java - 在運行時檢測內存交換
- 26. 在Python中檢測Windows註銷
- 27. 在Python中檢測鍵輸入
- 28. 在opencv-python中檢測星形
- 29. Python - 在shell中檢測按鍵
- 30. 在Python中檢測Arduino端口
命令'免費-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