我正在使用 Ants Performance Profiler 8.5,当我看到代码每行的运行时间时,我发现花括号也需要时间。如下图所示,您可以在括号左侧看到以毫秒为单位的时间: 有时候我会得到更多的时间,比如 5 毫秒... 这是为什么?这是垃圾回收吗?
定义方法时,编译器会知道作用域内的一组参数,称为 maxstack。这暗示了该方法需要分配的内存量。这可能是额外时间的源头 - CLR 进行内存分配。添加更多大括号实际上不会增加 maxstack 的参数。它将范围限定在整个方法中。作用域更像是一个逻辑分组,而不是由 CLR 实现来释放内存。关于您有关垃圾回收的问题,我不认为这是问题的根本原因。GC 在需要时由单独的线程运行。虽然这可能是 GC 的原因,但在您的情况下,我严重怀疑这点。