面向 iOS 应用的应用内调试工具包,提供浮动调试菜单,用于查看网络请求、性能、视图、日志和应用数据。
bloomberg/memray
面向 Python 的内存分析器,可追踪 Python 代码、原生扩展及解释器自身的内存分配,并生成多种报告。
- Star
- 15,389
- Fork
- 480
- 未关闭 Issue
- 37
- 最近提交
- 前天
这是什么?
Memray 是一款面向 Python 的内存分析器,可记录 Python 代码、C/C++ 原生扩展模块以及解释器自身发起的内存分配,并将采集数据生成火焰图、表格、树形视图和终端摘要等报告。它最常以命令行形式通过 `memray run` 使用,也可以作为库,通过 Tracker 上下文管理器进行更细粒度的分析。
与采样式分析器不同,Memray 会追踪每一次函数调用,因此调用栈记录更准确。原生代码追踪需通过 `--native` 按需开启,会把 C/C++ 栈帧加入结果,便于分析 numpy、pandas 等扩展的内存占用。实时模式可在终端中随程序运行查看分配情况,attach 功能则可以对已运行的进程开始追踪。
该工具主要用于定位内存占用过高的原因、查找内存泄漏以及发现分配频繁的热点代码,支持 Python 线程和原生线程。目前仅支持 Linux 和 macOS,要求 Python 3.9 及以上版本。pytest 插件 pytest-memray 是独立项目。
核心功能
- 01逐次追踪函数调用,调用栈比采样式分析器更准确
- 02通过 --native 同时追踪 Python 代码与 C/C++ 原生扩展的分配
- 03生成火焰图、HTML 表格、终端树形视图和摘要报告
- 04实时终端界面,可在程序运行时查看内存分配
- 05支持附加到已运行的 Python 进程进行追踪
- 06可通过 Tracker 上下文管理器以库的形式调用
适用场景
- 排查 Python 服务或脚本内存占用过高的原因
- 定位长时间运行应用中的内存泄漏
- 找出分配大量内存的代码热点
- 分析依赖 numpy、pandas 等 C 扩展的 Python 程序
快速上手
- 1
从 PyPI 用 pip 安装 Memray
python3 -m pip install memray - 2
在分析器下运行你的脚本以记录内存分配
python3 -m memray run my_script.py - 3
从结果文件生成 HTML 火焰图
memray flamegraph memray-my_script.py.2369.bin
使用前须知
- 仅支持 Linux 和 macOS,无法在 Windows 上安装。
- 从源码构建需要 libunwind、lz4 和 libdebuginfod 等系统库。
标签
常见问题
- memray 是什么?
- 面向 Python 的内存分析器,可追踪 Python 代码、原生扩展及解释器自身的内存分配,并生成多种报告。 Memray 是一款面向 Python 的内存分析器,可记录 Python 代码、C/C++ 原生扩展模块以及解释器自身发起的内存分配,并将采集数据生成火焰图、表格、树形视图和终端摘要等报告。它最常以命令行形式通过 `memray run` 使用,也可以作为库,通过 Tracker 上下文管理器进行更细粒度的分析。
- memray 可以免费使用吗?用的什么许可证?
- memray 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- memray 还在维护吗?
- 活跃维护中。memray 最近一次提交是在 2026年10月19日。
- memray 适合用来做什么?
- 排查 Python 服务或脚本内存占用过高的原因 定位长时间运行应用中的内存泄漏 找出分配大量内存的代码热点 分析依赖 numpy、pandas 等 C 扩展的 Python 程序
- memray 怎么安装和运行?
- 从 PyPI 用 pip 安装 Memray: python3 -m pip install memray 在分析器下运行你的脚本以记录内存分配: python3 -m memray run my_script.py 从结果文件生成 HTML 火焰图: memray flamegraph memray-my_script.py.2369.bin
- 在哪里获取 memray?
- 源代码和安装说明在 GitHub 上:https://github.com/bloomberg/memray
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 PEP 621、PEP 517 标准的现代 Python 包与依赖管理工具,支持虚拟环境与锁文件。
注重本地控制与隐私的开源智能家居自动化平台,可运行在树莓派或本地服务器上。
本地优先的 AI 记忆系统,逐字保存对话历史,并通过语义搜索检索,提供 MCP 服务与命令行工具。
让编程智能体通过 MCP 控制和调试实时 Chrome 浏览器的服务器,基于 Chrome DevTools。
一款支持 TLS 的交互式拦截 HTTP 代理,提供终端、命令行和 Web 三种界面,用于查看 HTTP/1、HTTP/2 和 WebSocket 流量。