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进行热分析
目录
相关文章
|
9月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
10月前
|
缓存 供应链 监控
1688item_search_factory - 按关键字搜索工厂数据接口深度分析及 Python 实现
item_search_factory接口专为B2B电商供应链优化设计,支持通过关键词精准检索工厂信息,涵盖资质、产能、地理位置等核心数据,助力企业高效开发货源、分析产业集群与评估供应商。
|
10月前
|
缓存 监控 算法
item_get - Lazada 商品详情详情接口深度分析及 Python 实现
Lazada商品详情接口item_get可获取商品全维度数据,包括价格、库存、SKU、促销及卖家信息,支持东南亚六国站点,适用于竞品监控、定价策略与市场分析,助力跨境卖家精准决策。
|
10月前
|
JSON 监控 数据格式
1688 item_search_app 关键字搜索商品接口深度分析及 Python 实现
1688开放平台item_search_app接口专为移动端优化,支持关键词搜索、多维度筛选与排序,可获取商品详情及供应商信息,适用于货源采集、价格监控与竞品分析,助力采购决策。
|
10月前
|
缓存 监控 算法
唯品会item_search - 按关键字搜索 VIP 商品接口深度分析及 Python 实现
唯品会item_search接口支持通过关键词、分类、价格等条件检索商品,广泛应用于电商数据分析、竞品监控与市场调研。结合Python可实现搜索、分析、可视化及数据导出,助力精准决策。
|
9月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
9月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。

推荐镜像

更多