SuperAPI AI 工具集

build-performance-analysis

编程与开发

查看项目

更新于 10-15 21:52

技能介绍

用途:分析 C++ 构建性能。该技能使用 vcperf.exe 与 C++ Build Insights SDK 采集 MSVC 编译期间的 ETW 事件,生成 ETL 文件或结构化 JSON 报告,用于定位编译瓶颈、模板实例化与包含文件开销。

主要能力:支持 /level1 至 /level3 跟踪级别(/level3 含模板实例化数据);/jsonAnalysis 输出 JSON 报告,包含 IncludedFiles、Functions、Templates、IncludeTree 等部分;/timetrace 与 /jsonAnalysis 互斥;/templates 可附加模板数据。

使用方式:先解决跟踪权限——需管理员身份,或一次性以管理员运行 vcperf /grantusercontrol,之后非管理员可用 /start /noadmin(数据减少,无 CPU 采样)。启动跟踪:vcperf /start [/noadmin] [/nocpusampling] [/level1|/level2|/level3] <sessionName>;随后运行正常构建(MSBuild、CMake 或 cl.exe);停止并分析:vcperf /stop [/templates] <sessionName> output.etl /jsonAnalysis output.json,或先 /stopnoanalyze 保存原始 ETL 再 /analyze。建议将 /start、构建、/stop 串成单条 shell 命令,避免时间间隙污染 BuildDurationMs。

基线测量:在改动前做 5 次无插桩的干净重建取平均,改动后再做 5 次对比;测量期间不要运行 vcperf,也不要修改项目。

限制:仅适用于 MSVC 构建;Debug 构建缺少优化器阶段,Functions 数据稀疏,函数级分析应使用 Release 等优化配置;需 Windows 环境与 PowerShell;权限授予失败时不应静默重试或降级测量。JSON 字段完整定义见 references/json-schema.md,权限细节见 references/feed-auth.md。