IDE 为什么不提供像断点这样的内置代码时序?

why dont IDE's offer built in code timing like break points?

我发现为性能计时我的代码有点头疼,我不得不假设这是人们的常见问题。

添加一堆代码来为我的循环计时很棒,但添加计时检查的开销通常比添加并行任务的开销大。 使循环并行可能需要几秒钟,而添加计时块需要几行代码,如果忘记会很危险。

所以...我的问题是为什么 IDE 不包含这种对代码块计时的功能,例如断点? 像我标记一段代码并告诉它使用一些选项将计时输出转储到控制台以使其更具可读性。平均值等。

我知道断点会严重影响性能,但必须有一种更简单的方法来为特定的代码块计时,然后为我要检查的每个代码块编写我自己的所有计时例程。

首先,VS 2015 does offer timing indicators while debugging.


(来源:s-msft.com

但我说不要将它用于严肃的分析目的。使用它可以非常粗略地了解正在发生的事情。

在调试构建中对任何东西进行计时会产生不可靠的数字,原因有很多(禁用编译器优化、禁用 JIT 优化、nop 无处不在的指令、断点等) .垃圾进,垃圾出。

只需正确进行分析,很难 做到正确。如果您需要详细的性能数据,请使用真正的分析器。