为什么大括号花时间在C#代码上?

时间:2014-06-02 06:51:53

标签: c# performance profiling ants

我正在使用Ants Performance Profiler 8.5,当我看到代码的每一行都运行时,我注意到括号也需要时间。

这是一张图片,您可以在大括号的左侧看到以毫秒为单位的时间:

enter image description here

有时我会得到更多时间,比如5毫秒...

为什么?这是垃圾收集吗?

1 个答案:

答案 0 :(得分:3)

定义方法时,编译器知道方法范围内的参数集,称为maxstack。这暗示了为方法分配的内存量。

这个可以成为额外时间的来源 - CLR的内存分配。

添加更多大括号实际上并未向maxstack添加更多参数。它的范围是整个方法。范围更像是一个逻辑分组,而不是由CLR实现释放内存。

关于GC的问题,我不相信这是问题的根本原因。在需要时,GC由单独的线程运行。 可以成为GC,但我非常怀疑你的情况。