Python的內存檢測工具:Memory Profiler

jopen 10年前發布 | 17K 次閱讀 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的調用,精度不會生效。

項目主頁:http://www.baiduhome.net/lib/view/home/1418094394823

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!