这个项目能做什么
Memray 是一款面向 Python 的内存分析器,旨在追踪 Python 代码、原生扩展模块(如 C/C++)以及 Python 解释器本身的内存分配情况。它为每个函数调用提供详细的调用栈追踪,从而实现精确的内存使用归因——这与抽样分析器的做法不同。它同时支持命令行和库式用法,在不同分析场景中十分灵活。
核心功能包括:
- 完整调用栈表示追踪所有函数调用。
- 通过可选的 --native 标志分析 Python 扩展(如 numpy、pandas)中的原生 C/C++ 代码。
- 生成多种报告类型:火焰图(HTML)、表格、树状视图、实时终端监控、摘要和统计信息。
- 支持 Python 线程和原生线程(如来自 C++ 扩展的线程)。
- 高性能:分析过程中的性能损耗极小;可通过开关原生追踪来平衡速度与细节。
- 通过 pytest-memray 插件与 pytest 集成,实现自动化内存测试和限制检查。
- 实时模式:针对长时间运行的脚本,提供交互式 TUI 进行实时内存检查。
- 可编程 API:使用 memray.Tracker() 上下文管理器以编程方式分析特定代码块。
安装需要 Python 3.9+,可通过 pip 或 conda 获取。Linux x86/x64 和 macOS 提供二进制 wheel 包;源码编译需要 libunwind 和 liblz4 等系统依赖。文档和示例托管在 https://bloomberg.github.io/memray/。
Memray 可帮助识别高内存占用、内存泄漏和分配热点。它不支持 Windows 及其他平台。项目采用 Apache-2.0 许可证,欢迎遵循 DCO 签署规范 Community 贡献。
评论
0 评分人数达到10人后显示
登录后参与讨论。