网站内的搜索怎么做的,北京上地网站建设,模板网官网免费版,品牌网站建设咨询Memray是一个由彭博社开发的、开源内存剖析器#xff1b;开源一个多月#xff0c;已经收获了超8.4k的star#xff0c;是名副其实的明星项目。今天我们就给大家来推荐这款python内存分析神器。
Memray可以跟踪python代码、本机扩展模块和python解释器本身中内存分配#xf…Memray是一个由彭博社开发的、开源内存剖析器开源一个多月已经收获了超8.4k的star是名副其实的明星项目。今天我们就给大家来推荐这款python内存分析神器。
Memray可以跟踪python代码、本机扩展模块和python解释器本身中内存分配可以生成多种不同类型的报告帮助大家分析python代码内存使用情况。
工具的主要特点
跟踪每个函数的调用能够准确的跟踪调用栈能跟踪c/c库的调用分析速度很快收集内存数据输出各种图标使用python线程与本地线程一起工作
可以帮助解决的问题
分析应用程序中内存分配发现高内存使用率的原因查找内存泄漏的原因查找导致内存大量分配的代码热点
memray安装
环境要求python3.7以上版本linux系统仅支持linux系统安装pip3 install memray
memray使用
memray使用帮助
python3 -m memray --help1 参数作用run运行指定的应用程序并跟踪内存使用情况flamegraph在html报告中用火焰图方式显示内存使用情况table在html报告文件中用表格的方式显示内存分析情况live用实时屏幕显示方式显示各种内存使用情况tree在终端中用树形结构显示内存使用情况parse用debug模式显示每一行的内存使用情况summary汇总终端运行期间的内存使用概况stats在终端中非常详细的显示内存使用情况
run命令使用
python3 -m memray run --help 获取帮助
参数作用-oOUTPU,–output OUTPUT指定输出结果到哪里–live启动实时跟踪会话模式–live-remote启动实时跟踪会话并等待客户端连接–live-port LIVE_PORT,-p LIVE_PORT启动实时跟踪时要使用的端口–native跟踪C/C堆栈–follow-fork跟踪脚本分叉的子进程中的分配–trace-python-allocators记录pymalloc分配器的分配情况-q, --quiet运行时不显示任何特定于跟踪的输出-f, --force强制复购已有文件–compress-on-exit跟踪完成后使用 lz4 压缩生成的文件–no-compress运行时不显示任何特定于跟踪的输出-c不使用 lz4 压缩生成的文件-m将库模块作为脚本运行
python3 -m memray run xxx.py 直接分析某个py文件的内存使用情况就会在当前路径下生成一个 ‘memray-py文件名.进程id.bin’ 的内存使用记录文件。当然也可以跟上-o outFiPath 指定输出路径。如果运行的py文件是模块代码也可以使用-m xxx.py 方式运行。 memray-py文件名.进程id.bin’ 文件可以通过 python3 -m memray flamegraph memray-py文件名.进程id.bin 转换为一份html-火焰图报告 如上图从上往下显示了程序的调用过程宽度代表函数占用内存多少。
python3 -m memray run --native xxxx.py 会跟踪分析python代码中调用底层的C/C函数消耗的内存情况python3 -m memray run --trace-python-allocators xxx.py 跟踪分析python程序内存分配器pymalloc的情况 这个看上去和没有加参数效果差不多但是实际上是完全不一样的。这种方式会深入跟踪内存分配python常见的内存分配器有四种malloc、free、realloc、pymalloc这个参数在python出现内存溢出时就非常有用了。但是加了这个参数运输速度会变慢收集的数据生成的文件会更大。
python3 -m memray run --live xxx.py 用实时屏幕模式显示跟踪的内存数据。 默认时根据Total memory的数据从大到小往下排列按O可以根据私有内存从大到小排序显示内存对象按“A”则根据内存分配次数量从高到底排序。
有了这个统计数据就能快速定位到哪些对象占用内存大哪些对象被频繁的分配内存。这些对象就是重点分析对象。
flamegraph命令—生成火焰图报告
python3 -m memray flamegraph --help 获取帮助python3 -m memray flamegraph xxx.bin 生成火焰图
table命令–生成表格报告
python3 -m memray table --help 获取帮助python3 -m memray table xxxx.bin 把bin文件转换为表格报告 tree命令–生成树形报告
python3 -m memray tree --help 获取帮助python3 -m memray tree xxxx.bin 把bin文件转换为树形报告 summary命令–生成概要报告
python3 -m memray summary --help 获取帮助python3 -m memray summary xxxx.bin 对bin文件进行分析生成概要报告 stats命令—生成详细统计报告
python3 -m memray stats --help 获取帮助python3 -m memray stats xxxx.bin 对bin文件进行分析生成详细报告 总结
感谢每一个认真阅读我文章的人
作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。 文档获取方式 加入我的软件测试交流群680748947免费获取~同行大佬一起学术交流每晚都有大佬直播分享技术知识点
这份文档对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你 以上均可以分享只需要你搜索vx公众号程序员雨果即可免费领取