SuperAPI AI 工具集

eval-performance

通用与其它

查看项目

更新于 10-16 06:44

技能介绍

用途:诊断并改善 MSBuild 项目评估性能。评估是 MSBuild 在运行任何目标之前所做的工作,包括读取项目文件、处理导入、展开通配符。该技能帮助发现并确认评估瓶颈,主张先测量,只有测量证明有必要时才建议改动。

适用前提:仅当评估被可测量地确认为瓶颈时才介入。若缓慢发生在编译或目标执行阶段,应改用 build-perf-diagnostics;若问题是增量构建/重建过多,应改用 incremental-build;若没有任何测量数据,应先收集 binlog 或计时摘要,不要凭阅读项目文件猜测。

评估阶段:初始属性(环境变量、全局属性、保留属性)、导入与属性评估、项定义评估、项评估(Include/Remove/Update、通配符展开)、UsingTask 评估。关键点:评估发生在任何目标运行之前,评估慢会导致构建启动慢。

诊断方式:首选 binlog MCP(Microsoft.AITools.BinlogMcp),可用 evaluations 列出评估及耗时、evaluation_global_properties 检查全局属性差异、evaluation_properties 查看属性、imports 分析导入链、properties 检查昂贵的属性函数。备选:重放 binlog(dotnet msbuild build.binlog -noconlog -fl "-flp:v=diag;logfile=full.log"),搜索评估事件;使用 /pp 预处理(dotnet msbuild -pp:full.xml MyProject.csproj)查看展开后的导入;使用 /clp:PerformanceSummary 获取计时分解。

常见问题与处理:过宽通配符(如 **/*.cs 遍历整棵树,或覆盖 node_modules、.git、bin、obj),可用 DefaultItemExcludes 排除大目录、使用更具体的路径,EnableDefaultItems=false 仅作最后手段;导入链过深(超过 20 层)会拖慢评估;同一项目被多次评估(全局属性不同)造成浪费,可规范化全局属性或使用图构建 /graph;TreatAsLocalProperty 过度使用会增加开销;属性函数在评估期间执行,避免文件 I/O、网络调用等昂贵操作。

限制:资料未提供该技能的具体安装命令、收费信息或平台支持细节,暂未提供。