Visual Studio - 程序在分析时运行得更快

Visual Studio - Program runs faster when profiling

我一直在对我编写的物理应用程序进行一些分析,我注意到在分析它时,它比没有分析器时运行得更快,也许更流畅。请注意,我不是 运行 调试配置中的程序或附加调试器的程序。

我测量了差异,发现程序在分析器下运行速度快了 ~50%。我不认为这是重复的,因为另一个问题没有明确说明 he/she 是否是 运行 它附加了调试器,并且最佳答案假设是这种情况(并且 20 倍加速强烈表明在大多数情况下这将是正确的答案)。

另一个答案暗示了一个 "heisenburg" 错误,但这是一个包罗万象的假设(我仍将沿着这条线进行调查)。

是否有可能 Visual Studio 做了一些事情来阻止其他应用程序干扰我的应用程序的计算或内存资源(为了获得 "fairer" 结果)?

Visual Studio 的 "CPU Usage" 分析器似乎忽略了笔记本电脑的电源使用设置,因此如果您 运行 笔记本电脑上的应用程序试图节省电池电量,它将 运行 比你 运行 上的分析器慢。

我下班回家后发现了这一点——我注意到速度差异已经消失。凭直觉,我拔掉了笔记本电脑的插头,又试了几次。速度差又回来了。更重要的是,在分析器下,应用程序 运行 以大约相同的速度插入或不插入。

我找不到这方面的任何资源,但如果有人能找到一些资源,我很乐意编辑它们。

如果您在代码中使用线程,这可能是由于 Windows 中的系统计时器分辨率引起的。

Default windows timer resolution is 15.6ms

当您 运行 使用分析器时,这会减少到 1 毫秒并且您的程序 运行 速度很快。 检查此 answer