使用说明
PerfOwl
看看其他人在你的绩效档案中错过了什么。
欢迎
PerfOwl是一个功能强大的CLI工具和MCP服务器,用于分析浏览器分析器导出。无论您是调试性能问题、优化web应用程序,还是将性能分析集成到AI工作流程中,PerfOwl都可以帮助您识别瓶颈并理解复杂的跟踪。
什么是PerfOwl?
PerfOwl(优化工作台和实验室)是一个性能分析工具包,提供:
- 瓶颈检测 -GC压力、布局抖动、同步IPC、长任务、网络阻塞
- 可拓分析 -每个扩展的性能影响、DOM事件、IPC消息
- 呼叫树分析 -根据自身时间和运行时间的热功能,热路径检测
- 类别细分 -每个分析器类别(JavaScript、布局、GC/CC、网络等)花费的时间
- 线程分析 -CPU时间、样本计数、唤醒模式、类别分布
- 工人分析 -Web Worker性能、CPU/空闲时间、消息模式、同步点
- 加密货币分析 -SubtleCrypto API使用、算法检测、序列化问题
- 竞争检测 -GC暂停影响工作进程、同步IPC阻塞、锁争用
- 尺度分析 -并行效率、加速测量、瓶颈识别
- 配置文件比较 -比较两个配置文件以确定改进或回归
- MCP服务器 -与Claude和其他AI助手集成
目前支持Firefox Profiler导出,更多浏览器即将推出。
目录
先决条件
在使用PerfOwl之前,请确保您已经:
[!注意] PerfOwl分析Firefox Profiler导出。要捕获配置文件,请执行以下操作:
- 打开Firefox并导航到 profiler.firefox.com
- 单击“启用探查器”并重现您的性能问题
- 点击“捕获配置文件”并下载
.json.gz文件
快速开始
# Clone and build
git clone https://github.com/user/perfowl.git
cd perfowl
go build -o perfowl .
# Analyze a profile
./perfowl summary -p profile.json.gz
./perfowl bottlenecks -p profile.json.gz -o markdown
安装
从源代码构建
go build -o perfowl .
码头工人
# Build image
docker build -t perfowl .
# Run CLI commands
docker run --rm -v /path/to/profiles:/profiles:ro perfowl summary -p /profiles/profile.json.gz
# Run MCP server
docker run -i --rm -v /path/to/profiles:/profiles:ro perfowl mcp
CLI使用情况
可用命令
| 命令 | 描述 |
|---|---|
summary |
获取配置文件摘要(持续时间、平台、线程、扩展) |
bottlenecks |
通过严重性过滤检测性能瓶颈 |
extensions |
分析扩展性能影响 |
markers |
提取按类型、类别或持续时间过滤的标记 |
workers |
分析Web Worker性能和同步 |
crypto |
分析加密操作并检测问题 |
contention |
检测线程争用(GC、IPC、锁) |
scaling |
测量并行缩放效率 |
mcp |
启动MCP服务器 |
输出格式
PerfOwl支持多种输出格式:
# JSON (default)
./perfowl bottlenecks -p profile.json.gz -o json
# Markdown (great for reports)
./perfowl bottlenecks -p profile.json.gz -o markdown
# Plain text
./perfowl bottlenecks -p profile.json.gz -o text
MCP服务器设置
PerfOwl包括一个MCP(模型上下文协议)服务器,用于与Claude等人工智能助手集成。
添加到克劳德代码:
claude mcp add perfowl -s user -- /path/to/perfowl mcp
验证安装:
claude mcp list
开始使用Claude:
“分析/path/to/profile.json.gz中的Firefox配置文件并找到瓶颈”
可用的MCP工具
| 工具 | 说明 |
|---|---|
get_summary |
获取配置文件摘要(持续时间、平台、线程、扩展) |
get_bottlenecks |
通过严重性过滤检测性能瓶颈 |
get_markers |
提取按类型、类别或持续时间过滤的标记 |
analyze_extension |
分析扩展性能影响 |
analyze_profile |
综合分析(总结+瓶颈+扩展) |
get_call_tree |
查找热门功能和热门路径 |
get_category_breakdown |
每个分析器类别所花费的时间 |
get_thread_analysis |
使用CPU时间和唤醒模式分析所有线程 |
compare_profiles |
比较两个配置文件以进行改进/回归 |
analyze_workers |
分析Web Worker性能和同步 |
analyze_crypto |
分析加密操作并检测问题 |
analyze_contention |
检测线程争用(GC、IPC、锁) |
analyze_scaling |
测量并行缩放效率 |
compare_scaling |
比较两个配置文件之间的缩放比例 |
使用示例
分析个人资料
# Get a quick summary
./perfowl summary -p profile.json.gz
# Find performance bottlenecks
./perfowl bottlenecks -p profile.json.gz -o markdown
# Analyze extension impact
./perfowl extensions -p profile.json.gz
# Extract specific markers
./perfowl markers -p profile.json.gz --type GCMajor --limit 10
# Analyze worker threads
./perfowl workers -p profile.json.gz
# Profile crypto operations
./perfowl crypto -p profile.json.gz
# Detect thread contention
./perfowl contention -p profile.json.gz
# Measure scaling efficiency
./perfowl scaling -p profile.json.gz
比较配置文件
# Compare scaling between baseline and optimized versions
./perfowl scaling -p baseline.json.gz --compare optimized.json.gz
与AI助手合作
在MCP服务器运行的情况下,您可以要求Claude:
- “分析此配置文件并总结主要瓶颈”
- “比较这两个配置文件,告诉我有什么改进”
- “查找导致性能问题的任何扩展”
- “检查GC压力是否影响主螺纹”
贡献
欢迎投稿!以下是如何开始:
- 分叉存储库 -创建您自己的项目副本
- 创建要素分支 -
git checkout -b feature/your-feature-name - 进行更改 -遵循围棋惯例并跑步
go fmt - 彻底测试 -确保您的更改正确工作
- 提交拉取请求 -描述你的变化及其影响
报告问题
发现错误或有功能请求?
- 检查现有问题 -先搜索以避免重复
- 提供细节 -包括环境信息、复制步骤和预期行为
- 共享示例配置文件 -如果可能的话,分享一个再现问题的最小配置文件
许可证
该项目根据 MIT许可证。请参阅 许可证 文件以获取详细信息。