Performance Profiler 是一个以分析为核心的性能审查技能,强调每一条建议都必须有证据支撑。它不负责实际测量,而是基于代码、profiler 文本输出和 diff 等资料给出优化指导。
用途 该技能用于性能分析与优化建议,覆盖算法复杂度评估、profiler 输出解读、缓存策略设计、基准测试设计、性能回归风险评估以及内存泄漏模式扫描。它明确不用于运行 profiler、执行负载测试、基础设施监控或实际内存泄漏检测,只提供基于分析的指导,而非测量结果。
主要能力 技能包含六种模式:
- Analyze:对文件或函数进行算法复杂度分析,识别循环嵌套深度、递归模式、数据结构操作,映射到 Big-O 分类,评估热点风险,并标记热路径中 O(n^2) 或更差的函数。
- Profile:解析用户粘贴的 cProfile、py-spy、perf 等文本 profiler 输出,按累计时间排序热点,区分 I/O 密集与 CPU 密集模式,给出根因假设、优化方向、预期影响范围与权衡。
- Cache:根据读写比、数据新鲜度、缓存大小、一致性要求等访问模式,设计缓存策略,包括淘汰策略、写入策略、失效策略、预热方式与监控建议,并给出容量规划公式。
- Benchmark:生成基准测试骨架,审查测试方法论,检查预热、迭代次数、统计显著性、环境控制与方差报告等。
- Regression:根据代码 diff 评估性能回归风险,按复杂度增加、热路径变更、数据结构变更、I/O 模式变更、内存分配等因子加权评分,映射为 LOW/MEDIUM/HIGH/CRITICAL。
- Leak-Patterns:静态扫描常见内存泄漏模式,如事件监听器累积、闭包引用阻止 GC、无界集合增长、循环引用、资源句柄未关闭、全局状态累积等,并说明静态分析误报率较高,建议用实际 profiler 确认。
使用方式 通过 $ARGUMENTS 分发模式,例如 analyze <file/function>、profile <data>、cache <system>、benchmark <code>、regression <diff>、leak-patterns。空参数时显示模式菜单与示例。部分模式会调用脚本:complexity-estimator.py(AST 静态复杂度分析)、profile-parser.py(解析 cProfile/pstats 文本输出为 JSON)、benchmark-designer.py(根据函数签名生成基准测试骨架)。技能还提供参考文件(complexity-patterns.md、caching-strategies.md、anti-patterns.md、leak-patterns.md、profiler-guide.md、benchmark-methodology.md)以及机器可读的 data JSON 文件,并强调一次只加载一个参考文件。
适用场景 适用于需要性能优化指导的代码审查、profiler 输出解读、缓存方案设计、基准测试设计、合并前回归风险评估以及内存泄漏模式初筛。
限制 该技能不实际测量性能,不运行 profiler 或负载测试,不做真实内存泄漏检测。复杂度估计基于静态分析,存在不确定性。所有建议必须包含权衡,不得推荐过早优化,必须先确认代码位于热路径。Profiler 解读需引用具体数据点,缓存建议必须涉及失效策略,基准设计必须包含预热、统计显著性与方差报告,回归评估需追溯到具体代码变更,泄漏扫描仅为模式匹配,需用实际 profiler 确认。