python分析工具汇总

简介: python分析工具汇总

调用分析

py-spy

火焰图生成, top, dump性能,主要针对线程调用链路进行分析

https://github.com/benfred/py-spy

  • 火焰图
  • py-spy record -o profile.svg --pid 12345
  • py-spy record -o profile.svg -- python myprogram.py
  • top
  • py-spy top --pid 12345
  • py-spy top -- python myprogram.py
  • dump
  • py-spy dump --pid 12345

gdb

适用于线程调用追踪和代码运行点位分析,可以进行断点。


需要有对应版本的libpython

curl -o- http://file.fudata.work/base/python/Python-3.7.7.tgz| tar zxvf -source Python-3.7.7/Tools/gdb/libpython.py


cProfile

分析各个部分执行的频率和时间

https://docs.python.org/zh-cn/3/library/profile.html


werkzeug相关web应用可以直接使用中间件生成每个请求的分析文件, 结合snakeviz绘图

mkdir profiles
# ProfilerMiddleware适用于对整体的请求进行拦截
from werkzeug.middleware.profiler import ProfilerMiddleware
app.wsgi_app = ProfilerMiddleware(app.wsgi_app, profile_dir="profiles")

snakeviz

基于cProfile的dump文件,进行可视化分析

pyinstrument

调用栈分析

https://github.com/joerick/pyinstrument

line_profiler

逐行调用分析

https://github.com/pyutils/line_profiler


内存分析

Memray

功能非常完备了,支持live和离线bin分析模式。但是都需要让应用挂在memray进行下运行, 。如果有c等原生调用(比如我们目前的tensorflow),需要加上--native

https://github.com/bloomberg/memray

#memray run -o tfe_`date +'%s'`.bin --native -f -m fmpcbase.player --config /data/fmb-server/conf/project.cfg > /data/logs/tfe_server.log


高级用法

pyrasite + guppy3

pyrasite可以往运行中的python进程注入代码,结合guppy3可以对运行中的内存或其他信息进行分析。可操作性更大,但是需要自己编写pyload,门槛和成本较高

https://github.com/lmacken/pyrasite

https://github.com/zhuyifei1999/guppy3


分析建议

进程卡死无响应

  • 用py-spy dump出线程和火焰图

响应速度慢

  • 使用cprofile + snakeviz生成耗时和调用
  • web服务可以使用werkzeug的ProfilerMiddleware生成每个请求的分析文件,结合snakeviz绘图分析
  • 更细节的分析可以用pyinstrument+line_profiler

内存泄漏或者高占用

  • 使用memray dump内存占用提交开发

疑难杂症分析

  • gdb进行断点分析
  • Pyrasite + Payload进行热分析
目录
相关文章
|
2月前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
109 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
3月前
|
缓存 Rust 算法
从混沌到秩序:Python的依赖管理工具分析
Python 的依赖管理工具一直没有标准化,主要原因包括历史发展的随意性、社区的分散性、多样化的使用场景、向后兼容性的挑战、缺乏统一治理以及生态系统的快速变化。依赖管理工具用于处理项目中的依赖关系,确保不同环境下的依赖项一致性,避免软件故障和兼容性问题。常用的 Python 依赖管理工具如 pip、venv、pip-tools、Pipenv、Poetry 等各有优缺点,选择时需根据项目需求权衡。新工具如 uv 和 Pixi 在性能和功能上有所改进,值得考虑。
128 35
|
4月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
191 70
|
3月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
在现代数据分析中,高维时间序列数据的处理和预测极具挑战性。基于矩阵分解的长期事件(MFLEs)分析技术应运而生,通过降维和时间序列特性结合,有效应对大规模数据。MFLE利用矩阵分解提取潜在特征,降低计算复杂度,过滤噪声,并发现主要模式。相比传统方法如ARIMA和深度学习模型如LSTM,MFLE在多变量处理、计算效率和可解释性上更具优势。通过合理应用MFLE,可在物联网、金融等领域获得良好分析效果。
138 0
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
|
15天前
|
存储 监控 算法
基于 Python 哈希表算法的局域网网络监控工具:实现高效数据管理的核心技术
在当下数字化办公的环境中,局域网网络监控工具已成为保障企业网络安全、确保其高效运行的核心手段。此类工具通过对网络数据的收集、分析与管理,赋予企业实时洞察网络活动的能力。而在其运行机制背后,数据结构与算法发挥着关键作用。本文聚焦于 PHP 语言中的哈希表算法,深入探究其在局域网网络监控工具中的应用方式及所具备的优势。
48 7
|
12天前
|
数据采集 数据可视化 数据挖掘
基于Python的App流量大数据分析与可视化方案
基于Python的App流量大数据分析与可视化方案
|
3月前
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
533 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
|
3月前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
146 61
Python装饰器实战:打造高效性能计时工具
|
2月前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
86 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
2月前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
94 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡

热门文章

最新文章

下一篇
oss创建bucket