亲爱的大家好。
这篇文章是为在 SAP Business Application Studio中进行Python开发的开发人员准备的,他们可以测试你的代码的内存分析。
什么是Python内存剖析器?
剖析应用程序总是涉及到诸如CPU、内存等问题。然而,Python应用程序很容易出现内存管理问题。这主要是因为Python被应用于数据科学和ML应用,并与大量的数据一起工作。另外,Python默认依赖其内存管理系统,而不是将其留给用户。
由于Python代码通过分布式处理框架在容器内工作,每个容器都包含固定的内存量。如果代码的执行超过了内存的限制,那么容器就会终止。这时开发就会出现内存错误
内存剖析是一种非常强大的技术,它使得了解程序如何使用内存成为可能,从而帮助检测内存泄漏或了解程序的哪些部分造成了最多的内存使用。
| Memray由彭博社开发,现在已经开放源代码,它是一个内存剖析器,可以跟踪Python代码中的内存分配,包括本地扩展和Python解释器本身。 |
Memray能够生成关于所收集的内存使用数据的各种报告,包括火焰图,这对于快速准确地识别最频繁的代码路径非常有用。
对于任何用Python实现的长期运行的服务来说,这个工具是必须的。通过Memray,你可以生成火焰图或所有分配,并跟踪绝对的一切。

Memray可以作为一个命令行工具来运行和分析Python程序。
说明:
python3 -m pip install memray
第1步:在Business Application Studio中安装Python和Pip3(如果已经安装,请忽略)。
第2步:从我的git中克隆样本python
https://github.com/yogananda-muthaiah/memray_sample.git
第3步:在本地SAP Business Application Studio中测试一次
python3 app.py
第4步:运行memray,它将在你的文件夹中抛出一个bin文件。
python3 -m memray run app.py
Writing profile results into memray-app.py.1580.bin
emray WARNING: Correcting symbol for malloc from 0x4215f0 to 0x7f98465713e0
Memray WARNING: Correcting symbol for free from 0x421a50 to 0x7f9846571a30
Memray WARNING: Correcting symbol for aligned_alloc from 0x7f984600b480 to 0x7f98465720f0
[########################################]
[memray] Successfully generated profile results.
You can now generate reports from the stored allocation records.
Some example commands to generate reports:
/usr/bin/python3 -m memray flamegraph memray-app.py.1580.bin
第5步:使用memray和下载的bin文件运行flamegraph。
python3 -m memray flamegraph memray-app.py.1580.bin
Wrote memray-flamegraph-app.py.1580.html
第6步:如果你需要实时内存配置文件--运行以下命令
python3 -m memray run --live app.py