2.6 KiB
2.6 KiB
🚀 QwenPaw 启动性能分析工具
一键分析 QwenPaw 启动性能,识别瓶颈,提供优化建议。
快速开始
# 1. 生成报告
python scripts/startup_profile/analyze.py
# 2. 启动本地服务器查看(推荐)
python scripts/startup_profile/serve.py
执行后:
- 收集 import 时间数据
- 收集函数执行追踪(可选)
- 生成 JSON 数据
- 使用 HTTP 服务器查看报告
注意:由于浏览器安全限制(CORS),直接用 file:// 协议打开 HTML 无法加载数据。
请使用 serve.py 或手动启动 HTTP 服务器:
cd /path/to/QwenPaw
python -m http.server 8000
# 访问: http://localhost:8000/scripts/startup_profile/output/report.html
生成文件
output/
├── importtime.log # Import 时间原始日志
├── execution_trace.json # 函数执行追踪(如果成功)
├── analysis.json # 分析数据(核心)
└── report.html # 可视化报告 ⭐
报告功能
- Import 时间分析 - QwenPaw 模块和第三方库导入耗时排名
- 函数执行时间 - Top 20 函数执行时间统计
- 函数调用树 - 完整的函数调用层级关系和耗时(限制深度 5 层,每层最多显示前 10 个调用)
- 交互式图表 - Chart.js 横向柱状图可视化
- 双语支持 - 中英文一键切换
- 性能标记 - 根据耗时自动标记快/中/慢函数(绿/黄/红)
工作原理
-
数据收集
- 使用 Python
-X importtime收集 import 时间 - 使用
exec_tracer追踪函数调用
- 使用 Python
-
数据分析
- 解析日志文件
- 分类统计(QwenPaw/第三方/标准库)
- 计算占比和性能指标
-
可视化展示
- HTML 读取 JSON 数据
- 交互式图表和表格
- 支持搜索、排序、过滤
文件说明
analyze.py- 数据收集和分析脚本viewer.html- 可视化界面(双语)README.md- 中文文档README_EN.md- 英文文档
常见问题
Q: 为什么每次结果不同? A: Import 时间受系统负载影响,建议多次运行取平均值。
Q: 如何对比优化前后?
A: 保存 output/ 目录,优化后重新运行对比。
Q: 函数追踪失败怎么办?
A: 正常现象,不影响 import 分析。可单独使用 exec_tracer。
技术细节
- Python 3.8+
- 无额外依赖(除了 QwenPaw 本身)
- 纯 JSON 数据输出
- HTML 独立运行,可离线查看
相关工具
src/pineagents/utils/startup_display.py- 启动横幅显示
版本: 2.0.0 作者: QwenPaw Team 更新: 2026-04-17