Python的內存檢測工具:Memory Profiler
簡介
memory_profiler用于監視進程的內存消耗,以及基于行的內存消耗的分析。這是一個純Python模塊,依賴psutil,尤其是在Windows下。
快速入門
example.py:
@profile def my_func(): a = [1] * (10 ** 6) b = [2] * (2 * 10 ** 7) del b return a if __name__ == '__main__': my_func()
執行結果:
#python -m memory_profiler example.py Filename: example.py Line # Mem usage Increment Line Contents ================================================ 1 10.539 MiB 0.000 MiB @profile 2 def my_func(): 3 18.172 MiB 7.633 MiB a = [1] * (10 ** 6) 4 170.762 MiB 152.590 MiB b = [2] * (2 * 10 ** 7) 5 18.172 MiB -152.590 MiB del b 6 18.172 MiB 0.000 MiB return a
模塊的方式
example.py:
@profile def my_func(): a = [1] * (10 ** 6) b = [2] * (2 * 10 ** 7) del b return a if __name__ == '__main__': my_func()
執行結果:
#python example.py Filename: example.py Line # Mem usage Increment Line Contents ================================================ 3 9.7 MiB 0.0 MiB @profile 4 def my_func(): 5 17.4 MiB 7.6 MiB a = [1] * (10 ** 6) 6 170.0 MiB 152.6 MiB b = [2] * (2 * 10 ** 7) 7 17.4 MiB -152.6 MiB del b 8 17.4 MiB 0.0 MiB return a
還可以指定精度:
from memory_profiler import profile @profile(precision=4) def my_func(): a = [1] * (10 ** 6) b = [2] * (2 * 10 ** 7) del b return a
-m memory_profiler的調用,精度不會生效。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!