Bloomberg发布的最新的memray——Python内存分析器是什么?
Bloomberg在2022年4月开源了Memray,这是一个Python的内存分析器。它可以跟踪Python代码、本地扩展模块和Python解释器本身的内存分配情况。它可以生成几种不同类型的报告,帮助你分析捕获的内存使用数据。虽然通常作为CLI工具使用,但它也可以作为一个库来执行更细化的剖析任务。

这个库的特点:
- 🕵️跟踪每个函数调用,所以它可以准确地表示调用堆栈,不像采样分析器不够准确。
- ℭ 还能处理C/C++库中的本地调用,因此整个调用栈都会出现在结果中。
- 🏎 速度极快! 剖析在应用程序中引起最小的减速。追踪本地代码会慢一些,但这可以根据需要启用或禁用。
- 📈 它可以对收集的内存使用数据生成各种报告,如火焰图。
- 🧵 与Python线程一起工作。
- 👽🧵与本地线程(例如C++扩展中的线程)一起工作。

Memray可以帮助解决以下问题。
- 分析应用程序中的分配,帮助发现高内存使用率的原因。
- 查找内存泄漏。
- 找到代码中导致大量(内存)分配的热点(hotspots)。
- 注意,Memray只在Linux上工作,不能安装在其他平台上。
除了这些官方的优点,还有几个值得注意的内容:
1、完全开源,采用Apache 2协议,商业使用友好;
2、对于长时间运行的python代码尤其友好,可以深度分析分配的内存使用情况;
3、对于native代码的分析也很厉害,所以可以看numpy和pandas的运行情况,它还拥有live模式,直接观看内存的消耗情况
注意一点的是,正在运行的python代码是不可以追踪的,创作者认为这种情况看不到“回溯”的内存使用。所以目前还不支持这种模式。
GitHub地址:https://github.com/bloomberg/memray
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
