[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"pack-detail-performance-profiling-optimization-zh":3,"seo:pack:performance-profiling-optimization:zh":97},{"code":4,"message":5,"data":6},200,"操作成功",{"pack":7},{"slug":8,"icon":9,"tone":10,"status":11,"status_label":12,"title":13,"description":14,"items":15,"install_cmd":96},"performance-profiling-optimization","⚡","#F59E0B","new","本周新建","性能剖析与优化套装","10 件套，给那个盯着一个 8 秒慢查询、卡顿 UI、或者慢接口发呆的工程师：先 baseline，再读火焰图，再修一条热路径，再回归压测 — 用 AI agent 读 profile，不是瞎猜。",[16,28,36,44,51,57,64,72,82,89],{"id":17,"uuid":18,"slug":19,"title":20,"description":21,"author_name":22,"view_count":23,"vote_count":24,"lang_type":25,"type":26,"type_label":27},4404,"233a6cf7-f333-4014-bd50-9f44e342f6c3","claude-code-agent-performance-profiler-233a6cf7","Claude Code Agent: Performance Profiler","Performance analysis and optimization specialist. Use PROACTIVELY for performance bottlenecks, memory leaks, load testing, optimization strategies, and system performance...","TokRepo精选",24,0,"en","skill","Skill",{"id":29,"uuid":30,"slug":31,"title":32,"description":33,"author_name":34,"view_count":35,"vote_count":24,"lang_type":25,"type":26,"type_label":27},2340,"ac7ff133-4384-11f1-9bc6-00163e2b0d79","lighthouse-automated-web-performance-auditing-google-ac7ff133","Lighthouse — Automated Web Performance Auditing by Google","An open-source tool by Google that audits web pages for performance, accessibility, SEO, and best practices, available in Chrome DevTools, as a CLI, and as a Node module.","Script Depot",180,{"id":37,"uuid":38,"slug":39,"title":40,"description":41,"author_name":42,"view_count":43,"vote_count":24,"lang_type":25,"type":26,"type_label":27},4633,"6a3e54ed-54af-11f1-9bc6-00163e2b0d79","size-limit-performance-budget-tool-javascript-apps-6a3e54ed","Size Limit — Performance Budget Tool for JavaScript Apps","Size Limit calculates the real cost of running your JavaScript in a browser and throws an error if it exceeds the limit. It measures download time and parse\u002Fexecution cost rather than raw bytes, integrating with CI to catch performance regressions in pull requests.","AI Open Source",10,{"id":45,"uuid":46,"slug":47,"title":48,"description":49,"author_name":34,"view_count":50,"vote_count":24,"lang_type":25,"type":26,"type_label":27},2865,"343f06dc-4b7f-11f1-9bc6-00163e2b0d79","flamegraph-stack-trace-visualization-performance-analysis-343f06dc","FlameGraph — Stack Trace Visualization for Performance Analysis","Generate interactive SVG flame graphs from profiling data to pinpoint CPU, memory, and off-CPU bottlenecks across any language or OS.",47,{"id":52,"uuid":53,"slug":54,"title":55,"description":56,"author_name":34,"view_count":50,"vote_count":24,"lang_type":25,"type":26,"type_label":27},2869,"a0541a53-4b7f-11f1-9bc6-00163e2b0d79","async-profiler-low-overhead-sampling-profiler-java-a0541a53","async-profiler — Low-Overhead Sampling Profiler for Java","A low-overhead sampling profiler for JVM applications that captures CPU, allocation, and lock profiles without safepoint bias using perf_events and AsyncGetCallTrace.",{"id":58,"uuid":59,"slug":60,"title":61,"description":62,"author_name":34,"view_count":63,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1593,"5abb7410-398f-11f1-9bc6-00163e2b0d79","bcc-ebpf-tracing-performance-analysis-tools-linux-5abb7410","BCC — eBPF Tracing and Performance Analysis Tools for Linux","A toolkit for creating efficient kernel tracing and manipulation programs using eBPF. BCC includes over 100 ready-to-use tools for performance analysis, networking, and security observability on Linux systems.",109,{"id":65,"uuid":66,"slug":67,"title":68,"description":69,"author_name":70,"view_count":71,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1392,"138e4edf-38d7-11f1-9bc6-00163e2b0d79","grafana-pyroscope-continuous-profiling-backend-138e4edf","Grafana Pyroscope — Continuous Profiling Backend","Open-source continuous profiling backend from Grafana Labs that ingests pprof and eBPF profiles, supports label-based queries, and links traces to flamegraphs.","Grafana Labs",130,{"id":73,"uuid":74,"slug":75,"title":76,"description":77,"author_name":78,"view_count":79,"vote_count":24,"lang_type":25,"type":80,"type_label":81},3283,"216cb667-d5ae-5400-99d5-63dd528e1690","postgres-mcp-pro-index-tuning-safe-sql-tools","Postgres MCP Pro — Index Tuning + Safe SQL Tools","Postgres MCP Pro is an MCP server for PostgreSQL that runs safe SQL, explains plans, and recommends indexes so agents can tune databases faster.","MCP Hub",69,"mcp","MCP",{"id":83,"uuid":84,"slug":85,"title":86,"description":87,"author_name":22,"view_count":88,"vote_count":24,"lang_type":25,"type":26,"type_label":27},4288,"7b4df0b3-d4f7-4963-9eed-854781dc65d4","claude-code-agent-graphql-performance-optimizer-7b4df0b3","Claude Code Agent: Graphql Performance Optimizer","GraphQL performance analysis and optimization specialist. Use PROACTIVELY for query performance issues, N+1 problems, caching strategies, and production GraphQL API...",22,{"id":90,"uuid":91,"slug":92,"title":93,"description":94,"author_name":34,"view_count":95,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1116,"4240522f-364b-11f1-9bc6-00163e2b0d79","k6-modern-load-testing-tool-using-go-javascript-4240522f","k6 — Modern Load Testing Tool Using Go and JavaScript","k6 is a modern load testing tool built by Grafana Labs. Write test scripts in JavaScript, run them in a high-performance Go runtime. Developer-centric with CLI-first workflow, CI\u002FCD integration, and Grafana Cloud for result analysis.",182,"tokrepo install pack\u002Fperformance-profiling-optimization",{"pageType":98,"pageKey":8,"locale":99,"title":100,"metaDescription":101,"h1":102,"tldr":103,"bodyMarkdown":104,"faq":105,"schema":121,"internalLinks":126,"citations":139,"wordCount":152,"generatedAt":153},"pack","zh","性能剖析与优化套装 — 10 个工具修慢接口、慢查询、卡顿 UI","Performance Profiler agent \u002F Lighthouse \u002F Size Limit \u002F FlameGraph \u002F async-profiler \u002F BCC \u002F Pyroscope \u002F Postgres MCP Pro \u002F GraphQL Optimizer \u002F k6 — 一个 baseline → 剖析 → 诊断 → 修一处 → 回归压测 的闭环。TokRepo 一键装。","性能剖析与优化套装 — 别瞎猜，读 profile","10 件套，把「感觉慢」变成「测出来的前后对比」。先打 baseline（Lighthouse \u002F k6 \u002F Size Limit），抓火焰图（async-profiler \u002F FlameGraph \u002F BCC \u002F Pyroscope），让 AI agent 读 profile（Performance Profiler \u002F GraphQL Optimizer \u002F Postgres MCP Pro），修一处热路径，再跑回归。每个工具都在闭环里有明确位置，没一个是凑数。","## 这个 pack 包含什么\n\n这是给那个被 @ 的工程师用的：「`\u002Fsearch` 接口要 8 秒，能看一下吗？」或者「这个 dashboard 一打开卡两秒。」10 件套，每件在五步闭环里有明确角色：**baseline → 剖析 → 诊断 → 修一处 → 回归压测**。\n\n每个工具都是**开源**或有覆盖整个闭环的免费档。零「请联系销售」、零 SaaS-only 遥测。AI agent（Performance Profiler \u002F GraphQL Performance Optimizer \u002F Postgres MCP Pro）读的是**真正的 profile 输出** — 不是看你代码瞎猜「这里加个索引吧」。\n\n## 推荐安装顺序\n\n1. **Claude Code Agent: Performance Profiler** — 编排者。第一个装，因为后面你会把火焰图和 trace 都喂给它。它分得清 CPU profile \u002F off-CPU profile \u002F wall-clock profile 的区别，不会在 GC pause 是瓶颈时给你建议「加个缓存」。\n2. **Lighthouse** — 前端 baseline。动手前先跑 `lighthouse https:\u002F\u002Fyour.url --output html`，存下报告。后面每次改动都重跑做 diff。这是你的**前端「之前的样子」**。\n3. **Size Limit** — JS 包体性能预算。第一天就接 CI。配好 `size-limit: [{ path: 'dist\u002F*.js', limit: '200 KB' }]`，后面每个让 bundle 膨胀的 PR 在合并前被卡。整套里最便宜的性能收益。\n4. **FlameGraph** — Brendan Gregg 的 perl\u002FSVG 火焰图生成器。生态里其他工具说的就是这个文件格式。装一次，pack 里其他 profiler 都能往里灌：`perf script | stackcollapse-perf.pl | flamegraph.pl > out.svg`。\n5. **async-profiler** — JVM 低开销采样剖析器。给 Java\u002FKotlin\u002FScala 服务用。生产环境 ~1% 开销，输出的 collapsed-stack 格式直接进 FlameGraph。CPU \u002F 内存分配 \u002F 锁竞争 \u002F wall-clock 一个工具全包。\n6. **BCC (BPF Compiler Collection)** — Linux eBPF tracing。瓶颈在**你 runtime 之下**时用这个 — syscall \u002F 磁盘 I\u002FO \u002F 网络 \u002F 缺页。`biolatency` \u002F `tcpretrans` \u002F `funccount` 是你最先用的三条命令。\n7. **Grafana Pyroscope** — 持续 profiling 后端。修完一个慢接口后装它，让**下一次**回归是 dashboard 上的火焰图 diff，不是凌晨 11 点的 Slack 消息。原生兼容 FlameGraph 格式。\n8. **Postgres MCP Pro** — 索引调优 + 安全 SQL MCP。「查询慢」就用它 — 把这个 MCP 挂到 Postgres 上，让 agent 解释执行计划，它会跑真实 `EXPLAIN ANALYZE` + 给索引建议，并且自己再跑一次 `EXPLAIN` 验证过。不是幻觉。\n9. **Claude Code Agent: GraphQL Performance Optimizer** — 给每个 GraphQL gateway 早晚都会撞上的 N+1 问题准备的。读你的 resolver，找未 batch 的 DB 调用，按你的 schema 给具体的 DataLoader 修复方案。\n10. **k6** — JavaScript 脚本驱动的压测工具。回归保护网。每次修完，对 staging 跑同一份 k6 脚本，比 p50\u002Fp95\u002Fp99。**如果你用 k6 脚本复现不了那个慢路径，就证明不了你修好了。**\n\n## 它们怎么协同\n\n```\n┌─ BASELINE ─────────────────────────┐\n│ Lighthouse（前端）                  │\n│ k6（后端 p50\u002Fp95\u002Fp99）              │\n│ Size Limit（CI 里的包体预算）        │\n└─────────────┬──────────────────────┘\n              │ 「确实慢 — 但慢在哪？」\n              ▼\n┌─ PROFILE ──────────────────────────┐\n│ async-profiler（JVM）               │\n│ BCC \u002F eBPF（syscall、I\u002FO）          │\n│ Pyroscope（生产持续采集）           │\n│ → 都输出 FlameGraph 格式           │\n└─────────────┬──────────────────────┘\n              │ flamegraph.svg\n              ▼\n┌─ DIAGNOSE（agent 读 profile）──────┐\n│ Performance Profiler agent          │\n│ Postgres MCP Pro（查询计划）        │\n│ GraphQL Performance Optimizer       │\n└─────────────┬──────────────────────┘\n              │ 「热路径是 X，修法是 Y」\n              ▼\n        修一条热路径\n              │\n              ▼\n┌─ REGRESSION TEST ──────────────────┐\n│ k6（重跑同一脚本，比 p95）          │\n│ Lighthouse（重跑，比分数）          │\n│ Pyroscope（火焰图 diff）            │\n└────────────────────────────────────┘\n```\n\n闭环不可妥协。**跳过 baseline 就证明不了修好了。**跳过火焰图就是瞎猜 — 而且 LLM 会猜得更狠。跳过回归，下次发布静默地把它改回去你都不知道。\n\n## 你会遇到的取舍\n\n- **Pyroscope vs 一次性 async-profiler 抓** — Pyroscope 是持续的（常开、低开销、吃存储）。async-profiler 是按需的（怀疑时跑 60 秒，空闲零开销）。先用 async-profiler；修过两次回归、想让第三次从 dashboard 一眼看到，再装 Pyroscope。\n- **BCC vs `perf`** — BCC 更高层，用 Python 写脚本（可读）。`perf` 是内核自带的剖析器，更底层、略更通用。BCC 是更友好的入口；需要 BCC 没暴露的特定事件源时再上裸 `perf`。\n- **Lighthouse 本地跑 vs LH-CI** — 本地 Lighthouse 是一次性的。Lighthouse-CI 在每个 PR 上跑并存趋势。修完第一个之后装 LH-CI；否则本地够用。\n- **Size Limit vs Bundlephobia\u002FWebpack Bundle Analyzer** — Size Limit 在回归时**卡 CI**（主动）。分析器只**展示**你的 bundle（被动）。两个都有用；Size Limit 是阻止下一波 50 KB 意外膨胀的那个。\n- **k6 vs Artillery vs Locust** — k6 赢在脚本人体工程学（真 JavaScript，不是 YAML）、内置 p95\u002Fp99 报告、Grafana 集成。团队 YAML 派选 Artillery；团队 Python 派选 Locust。\n\n## 常见踩坑\n\n- **在 dev 剖析，给 prod 修** — 你笔记本 CPU 更快、数据集更小、JVM 还在解释模式。**永远在贴近 prod 负载的环境里剖析。** Pyroscope 在 prod 抓胜过 async-profiler 在笔记本抓，每次都赢。\n- **把火焰图当调用树读** — 火焰图是**采样的栈**。宽度 = CPU 时间，不是调用次数。一块很宽不代表「被调了很多」，代表「在那里花了很多 CPU」。\n- **不给 LLM 看 profile 就让它优化** — 每个不带实测数据的「优化这段代码」prompt 返回的都是通用建议（「加 memoization」「改用 Set」）。把火焰图或 `EXPLAIN ANALYZE` 直接喂给 agent。这就是 Performance Profiler agent 和 Postgres MCP Pro 存在的理由。\n- **修了冷路径** — 80% 的「优化」改的是只占 0.1% 运行时间的代码。改之前先确认那个函数真的在火焰图 top 5 里。\n- **修完没回归测** — 如果你用 k6 脚本（或 SQL 复现）回放不了那个慢路径，下次重构就会把它静默改回去，两周后才有人发现。",[106,109,112,115,118],{"q":107,"a":108},"我现在就有一个慢接口，先用哪个？","先用 k6 打一个数（「p95 是 8.2s」）。然后在 k6 压它的同时用 async-profiler（JVM）或 BCC（Linux 任意）抓 60 秒火焰图。把火焰图 + 慢查询（从 DB 日志拿）一起喂给 Performance Profiler agent 或 Postgres MCP Pro。这就是完整的第一轮修复闭环 — 基础设施可达的话，约 45 分钟。",{"q":110,"a":111},"async-profiler 和 Pyroscope 真的两个都要装吗？","修第一个问题时，不用。async-profiler 一个就够按需抓，FlameGraph 工具渲染输出。修**第二次**回归时再装 Pyroscope —— 当你意识到不想每次都 SSH 进去 attach。持续 profiling 在第三次事故后开始回本。",{"q":113,"a":114},"为啥要专门的 GraphQL 优化 agent，不直接用通用 Performance Profiler？","GraphQL 的 N+1 问题是个结构反模式，火焰图里**不容易看到** — 慢的部分是**很多个快查询**，单个都看不见。GraphQL Performance Optimizer agent 直接读 resolver 代码，找未 batch 的 DB 访问，按你的 schema 形状给 DataLoader 修复建议。通用 profiler 会告诉你「DB 调用宽」，但不会告诉你「这个 resolver 一个请求扇出 200 次调用」。",{"q":116,"a":117},"BCC 能在 macOS 上跑吗？","不能。BCC 基于 eBPF，只在 Linux 内核上跑。macOS 上原生代码用 Instruments（Xcode 自带），JVM 用 async-profiler。本 pack 假设 prod 在 Linux —— 即使你笔记本不是，大多数服务器是。",{"q":119,"a":120},"Size Limit 第一天的预算设多大合适？","量一下当前 bundle 大小，向上取 10%，把这个值设为 limit，然后发布。目标是挡住**未来**的膨胀，不是从英雄式节食开始。CI 绿了、团队习惯在 PR 上看 Size Limit 评论之后，每月把 limit 往下调 5%。多数团队一个季度内会发现 bundle 里 30-40% 是死重。",{"@context":122,"@type":123,"name":13,"description":124,"numberOfItems":43,"inLanguage":125},"https:\u002F\u002Fschema.org","ItemList","十个开源工具与 AI agent 组合，覆盖 baseline → 剖析 → 诊断 → 修一处 → 回归压测的完整闭环，用于修慢代码、慢查询、卡顿 UI。","zh-CN",[127,131,135],{"url":128,"anchor":129,"reason":130},"\u002Fzh\u002Fai-tools-for\u002Fobservability","AI Agent 可观测性工具集","剖析和 tracing 天然和日志\u002F指标 observability 栈搭配",{"url":132,"anchor":133,"reason":134},"\u002Fzh\u002Ftopics","浏览其他主题 pack","还有后端、前端、MCP、Agent 等多个主题 pack",{"url":136,"anchor":137,"reason":138},"\u002Fzh\u002Ffeatured","TokRepo 精选资产","这十个工具属于更大的精选目录",[140,144,148],{"claim":141,"source_name":142,"source_url":143},"Lighthouse 是 Google 出品的开源网页审计工具","Lighthouse 官方文档","https:\u002F\u002Fdeveloper.chrome.com\u002Fdocs\u002Flighthouse\u002Foverview",{"claim":145,"source_name":146,"source_url":147},"async-profiler 是 JVM 低开销采样剖析器","async-profiler GitHub 仓库","https:\u002F\u002Fgithub.com\u002Fasync-profiler\u002Fasync-profiler",{"claim":149,"source_name":150,"source_url":151},"k6 是 JavaScript 脚本驱动的现代压测工具","k6 官网","https:\u002F\u002Fk6.io\u002F",900,"2026-05-22T10:00:00Z"]