Memory Profiler

Python 内存分析器
授权协议 BSD
开发语言 Python
所属分类 开发工具、 性能测试和优化
软件类型 开源软件
地区 不详
投 递 者 宿洋
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Memory Profiler 是一个 python 模块,用于监视进程的内存消耗,甚至可以逐行分析 python 程序的内存消耗。 它是一个纯 python 模块,并有 psutil 模块作为可选(但强烈推荐)依赖。

Usage

line-by-line 内存使用模式与 line_profiler 的使用方式非常相似:首先用 @profile 修饰你需要监视的函数,然后使用特殊脚本运行脚本。

在下面的示例中,我们创建一个简单的函数 my_func,它分配列表a、b,然后删除 b:

@profile
def my_func():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    del b
    return a

if __name__ == '__main__':
    my_func()

执行将选项 -m memory_profiler 传递给 python 解释器的代码,以加载 memory_profiler 模块并打印到 stdout 进行逐行分析。 如果文件名是 example.py,这将导致:

$ python -m memory_profiler example.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

第一列表示已经概要分析的代码的行号,第二列(Mem用法)表示 Python 解释器在执行该行之后的内存使用情况。 第三列(增量)表示当前行相对于最后一行的存储器的差异。 最后一列打印已分析的代码。

 相关资料
  • /redis/script/redis-sampler.rb 127.0.0.1 6379 0 10000 /redis/script/redis-audit.rb 127.0.0.1 6379 0 10000

  • valgrind一个很好用的内存和CPU分析工具,srs由于使用了st(state-threads),st是基于c函数setjmp和longjmp,valgrind不支持这两个函数,所以srs没法用valgrind分析内存错误和泄漏。 gperf是google用作内存和CPU分析的工具,基于tcmalloc(也是google内存分配库,替换glibc的malloc和free)。好消息是gperf可

  • 主要内容:一、基本的数据结构,二、Buffer Pool,三、Change Buffer,四、ADaptive Hash Index,五、Log Buffer,六、总结一、基本的数据结构 在InnoDB中,数据的分配和存储也有自己的数据结构,在前面分析过MySql中的内存管理,但是内存管理是有一个不断抽象的过程。在InnoDB中还会有一层自己的内存管理。在InnoDB引擎中的内存结构主要有四大类: 1、Buffer Pool 在MySql中,数据都是存储在磁盘中的,也就是说,从理论上讲,每次做S

  • redis-cli MONITOR | head -n 5000 | ./redis-faina.py

  • 我已经下载了EclipseMat,并尝试在Windows上启动它。 执行显示一个弹出窗口,显示与此消息不兼容的JVM:JVM的1.8.0242版本不适用于此产品。版本:11或更高版本是必需的。 如本文所述,我创建了一个目录,并复制了一个解决问题的OpenJDK 16。 但是我不觉得这个解决方案很优雅。所以我试图在中添加参数,并试图创建一个文件作为文档的引用。它不起作用! 有没有一种方法可以配置JV

  • Ceph 监视器、 OSD 、和元数据服务器可利用 tcmalloc 生成堆栈剖析,此功能依赖 google-perftools : sudo apt-get install google-perftools 剖析器会把输出保存到 log file 目录(如 /var/log/ceph ),详情见日志记录和调试。剖析器日志可用 Google 性能工具来查看,执行如下命令: google-pprof

  • 问题内容: 我知道Valgrind,但它只是检测内存管理问题。我要搜索的是一个概述的工具,程序的哪些部分确实消耗了多少内存。带有树形图的图形表示(就像KCachegrind对Callgrind所做的那样)会很酷。 我在Linux机器上工作,所以Windows工具对我没有太大帮助。 问题答案: 使用massif,这是Valgrind工具的一部分。massif- visualizer 可以帮助您绘制数

  • 本文向大家介绍C#反射内存的处理分析,包括了C#反射内存的处理分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了C#反射内存的处理。分享给大家供大家参考。具体分析如下: 这段时间由于公司的项目的要求,我利用c#的反射的机制做了一个客户端框架。客户端里的所有的模块都是以一定形式进行提供,例如:FORM,UserControl. 在做的过程中很简单与愉快。具体的过程如下: 1. 收集客户的需