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

时间:2015-10-23 23:13:05

标签: c# visual-studio ide benchmarking

我觉得我的代码性能时间有点令人头疼,我不得不认为这是人们常见的问题。

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

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

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

1 个答案:

答案 0 :(得分:2)

首先,VS 2015 does offer timing indicators while debugging

但我说不要将它用于严肃的剖析目的。用它来了解非常粗略的想法。

调试版本中的任何内容会产生不可靠的数字,因为有很多因素(禁用编译器优化,禁用JIT优化,各处nop指令,断点等)。垃圾进,垃圾出。

只是正确地进行分析,这是一个很难的事情。如果您需要详细的性能数据,请使用真实的分析器。