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? - 目录 - 先决条件 - 快速开始 - 安装 - 从源代码构建 - 码头工人 - CLI使用情况 - 可用命令 - 输出格式 - MCP服务器设置 - 可用的MCP工具 - 使用示例 - 分析个人资料 - 比较配置文件 - 与AI助手合作 - 贡献 - 报告问题 - 许可证
先决条件
在使用PerfOwl之前,请确保您已经:
\[!注意\] PerfOwl分析Firefox Profiler导出。要捕获配置文件,请执行以下操作: 1. 打开Firefox并导航到 profiler.firefox.com 1. 单击“启用探查器”并重现您的性能问题 1. 点击“捕获配置文件”并下载 .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 mcpCLI使用情况
可用命令
| 命令 | 描述 |
|---|---|
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 textMCP服务器设置
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许可证。请参阅 许可证 文件以获取详细信息。
