Visual Studio构建统计数据

13

我想知道每天我在构建项目上所花费的时间有多少。是否有任何现有工具可以提供这样的统计信息?

谢谢!


“你说的'how much time spent on building..'是什么意思?你是指从你开始点击“构建”到它完成的时间(无论成功与否)?” - o.k.w
3个回答

14

MSBuild(Visual Studio用于构建的工具)可以提供您此信息。在msbuild.exe调用中包含PerformanceSummary开关:

msbuild.exe your.sln /clp:PerformanceSummary ...

这将在构建运行日志的末尾给您提供类似以下的内容:

项目性能摘要:
      374 ms  your.sln  1 次调用
目标性能摘要: ... 109 ms GetWinFXPath 1 次调用 156 ms EntityDeploy 1 次调用 390 ms Build 2 次调用 ... 时间已过 00:00:00.43

如果您想要一个仅包含此信息的文件,而不是将其写入控制台,则可以使用此开关(并将logfile设置为某个路径):

/logger:FileLogger,Microsoft.Build.Engine;logfile=perf.log;encoding=Unicode;performancesummary

很棒的答案! 有没有办法在Visual Studio IDE中更改msbuild.exe参数?我想我可以用一个脚本替换原始的msbuild.exe,并使用一些参数运行原始的msbuild.exe,但肯定有更简洁的方法吧? - Danra
2
自己找到了答案。 http://msdn.microsoft.com/zh-cn/library/ms404301.aspx - Danra

3

有一个构建事件,你可以使用它们,还可以在构建前后运行批处理脚本来回显时间 >> 文件名,

然后渲染文件并获取统计数据。

(转到项目属性页面中的构建事件)


我知道我可以编写脚本,但我想问是否有一个现成的工具/脚本可供使用,最好是集成到IDE中... - Danra
1
我猜可以编写一个构建任务并将其插入到环境中,但我不知道是否有计算构建时间的任务。 我会四处寻找,CodeProject可能会有相关内容。 - Dani

0
如果您使用像Cruise或Cruise.NET这样的持续集成工具,这些工具非常擅长显示构建时间、平均构建时间等指标。

这实际上会违背初衷,因为我对浪费了多少交互时间感兴趣 - 也就是说,我手动执行构建以测试代码更改的时间。虽然我不太了解Cruise Control,但也许我错过了它的一些功能。 - Danra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接