SuperAPI AI 工具集

eval-performance

通用与其它

查看项目

更新于 10-16 00:32

技能介绍

用途:诊断并优化 MSBuild 项目评估性能。评估发生在任何 target 运行之前,评估慢会导致构建启动慢,即使无需编译。

主要能力:梳理评估阶段(初始属性、Import 与属性求值、ItemDefinitionGroup、Item 求值、UsingTask);用 binlog MCP(Microsoft.AITools.BinlogMcp)的 evaluations、evaluation_global_properties、evaluation_properties、imports、properties 工具分析评估耗时、全局属性差异、导入链与昂贵属性函数;无 MCP 时回退到文本日志重放与预处理。

用法:重放 binlog:dotnet msbuild build.binlog -noconlog -fl -flp:v=diag;logfile=full.log,再搜索评估事件;预处理:dotnet msbuild -pp:full.xml MyProject.csproj;加 /clp:PerformanceSummary 查看评估与执行的时间拆分。

常见问题与限制:宽泛 glob(如 **/*.cs)会遍历整棵目录树,可用 DefaultItemExcludes 排除大目录、写具体路径,EnableDefaultItems=false 仅作最后手段;导入链过深(>20 层)拖慢评估;同一项目因全局属性不同被多次评估属浪费,可规范化全局属性或用 /graph;TreatAsLocalProperty 过度使用增加开销;评估期属性函数应快速且无副作用,避免文件 I/O 与网络调用。

优化清单:检查预处理输出规模、确认每项目每 TFM 只评估一次、排除大目录、避免评估期文件 I/O、减少导入深度、用图构建、清理多余 UsingTask。具体收益与平台支持资料未提供。