用途:对 Unity 项目做高信噪比的性能审查,聚焦可确认的性能隐患,而非投机性微优化。触发场景包括性能评审、诊断掉帧或卡顿、减少内存分配、规划对象池与优化。
主要检查项:过多互不相关的 Update/LateUpdate/FixedUpdate 循环;热路径中反复出现 Find、GetComponent、Camera.main 或标签查找;可改用对象池的频繁 Instantiate/Destroy;可避免的逐帧分配,如 LINQ、字符串格式化、闭包、装箱;运行时热路径中的反射;仅编辑器用的昂贵辅助逻辑泄漏进运行时代码;物理、动画或 UI 更新发生在不恰当的频率。
隐藏成本:某些看似免费的开销实际由“可能性”而非实际执行支付,因此剖析器常难以直接捕获。写入权限成本即使未写入也要付出,建议把偶发写入者拆为独立组件按需 AddComponent;用 baseSeed + i 生成随机流会导致序列相关,应先哈希索引,如可用则优先 Unity.Mathematics.Random.CreateFromIndex(i);Debug.Log 在 Player 构建中默认不会被剥离,应使用 if (Debug.isDebugBuild) 包裹整个表达式。
输出格式:已确认红旗、可能红旗、现在值得做的改动、现在不值得做的改动,以及预期收益类别(清晰度/帧时间/GC/可扩展性)。
限制:仅文档模式,无 REST 技能需门控;不得在没有明确热点时建议大规模重构,也不要用不可读的“优化”代码替换简单代码。调用本模块任何技能前,若参数来自名称或描述猜测,应先读取本文件或通过 GET /skills/recommend?includeSchema=true 获取 schema;已获得参数定义可直接 dryRun。