用途:对应用做性能画像,测量代码执行时间与数据库调用耗时,定位应用层和数据库层的瓶颈。适用对象包括特定接口/路由、后台任务/worker、某个函数或模块,以及整应用的常规审计。
主要能力与流程:
- 确定分析目标,可由用户指定或从上下文推断。
- 数据库调用耗时分析。PostgreSQL 可开启 psql 计时:psql "$DATABASE_URL" -c "\timing on",并查询 pg_stat_statements 按平均执行时间排序取前 20 条;若不可用提示启用 CREATE EXTENSION pg_stat_statements;。MySQL/MariaDB 查询 performance_schema.events_statements_summary_by_digest。输出按平均执行时间排序的前 20 条查询、调用次数及占总 DB 时间比例。
- 应用层分析:先检测运行时(package.json、Gemfile、requirements.txt/pyproject.toml、go.mod、pom.xml/build.gradle),再给出对应工具建议。Node.js 可用 node --prof 与 node --prof-process,Web 可加 --inspect 配合 Chrome DevTools,或用 npx clinic doctor -- node app.js;Ruby 可用 stackprof 或 rack-mini-profiler,方法级可用 Benchmark.measure;Python 可用 python -m cProfile -s cumulative、py-spy top --pid <pid>、snakeviz;Go 可用 go tool pprof,并 import _ "net/http/pprof" 启用端点。还会扫描已有计时埋点。
- 代码级瓶颈扫描:查找异步中的同步阻塞、缺少分页/无界查询、循环内重复昂贵调用等反模式,并阅读上下文评估影响。
- 参考阈值:DB 查询平均 <10ms 好、<100ms 可接受、>100ms 需修;每请求 DB 调用 ≤3 好、≤10 可接受、>10 需修;接口响应 <100ms 好、<500ms 可接受、>500ms 需修;后台任务 <1s 好、<30s 可接受、>30s 需修。
- 输出瓶颈报告,包含 DB 层、应用层、前三大瓶颈及本技术栈推荐工具,并可询问是否修复或添加埋点。
限制:资料未提供该技能的安装方式、支持的框架完整清单、收费或价格信息,也未提供效果承诺或平台信息,暂未提供。