彭博社开源Memray,一个用于python的内存剖析工具 – 迷途通

彭博社开源Memray,一个用于python的内存剖析工具

10月 20, 2022                      👁️ 17

彭博社拥有开源的Memray,这是一个强大的python内存分析器工具,它一直在使用。

Bloomberg Memray

Memray是由彭博社开发的用于python的内存分析器工具。Memray使获取分配给应用程序的内存的统计信息变得容易。Memray可以生成内存使用情况的火焰图报告。

Memray works with

  • 本机线程 native threads
  • python线程 python thread

Memray的重要性

在Python中,内存分析并不像我们预期的那么简单,因为Python解释器如何管理内存。这就是Memray的用武之地。

Memray可以帮助你

  • 找出导致高内存使用率的原因
  • 发现内存泄漏
  • 查找导致高内存分配的代码,以便您可以进行正确的编程调整

Memray安装要求

  • Memray可以从PyPI安装,并带有Python解释器。
  • 你需要有Python 3.7 +来安装它。
  • Memray只能在 Linux 操作系统上运行。

对于内存很少的微型计算机,在应用程序中拥有内存使用情况的统计信息非常重要。如果内存管理不当,可能会导致应用程序崩溃和数据丢失。

这是 Github 上的Memray文档代码

Memray 是一个由彭博社开发的内存剖析器memory profiler,现在已经开源。它可以跟踪 Python 代码中的内存分配,包括本地扩展和 Python 解释器本身。

Memray 是一个由彭博社开发的内存剖析器memory profiler,现在已经开源。它可以跟踪 Python 代码中的内存分配,包括本地扩展和 Python 解释器本身。内存剖析是了解程序如何利用内存的有力工具,因此可以检测内存泄漏或确定程序中哪些区域消耗的内存最多。

与 py-spy 等抽样内存剖析器相比,Memray 可以跟踪每个函数调用,包括对 C/C++ 库的调用,并详细显示调用栈。彭博社称,这并不以牺牲性能为代价,剖析只使解释代码的速度变慢一点。然而,原生代码剖析的速度较慢,因此需要直接启用。

Memray 可以根据获得的内存消耗数据生成各种报告,包括火焰图,这对快速、准确地识别最常见的代码路径很有价值。

据 EgdeDB 的联合创始人兼 CEO Yury Selivanov 称,该工具提供了以前无法获得的对 Python 应用的洞察力。Memray 可以用来从命令行中执行和剖析 Python 应用。

$ python3 -m memray run -o output.bin my_script.py
$ python3 -m memray flamegraph output.bin

另外,你可以使用 pytest-memray 将 Memray 集成到你的测试套件中。你也可以用 -native 命令行选项对所有的 C/C++ 调用进行剖析,或者用 -live 命令行选项在程序执行过程中实时分析内存分配。Memray 可以在 Linux x86/64 系统上用 python3 -m pip install memray 来安装。

发表回复

您的电子邮箱地址不会被公开。