我正在使用Ants Performance Profiler 8.5,当我看到代码的每一行都运行时,我注意到括号也需要时间。
这是一张图片,您可以在大括号的左侧看到以毫秒为单位的时间:
有时我会得到更多时间,比如5毫秒...
为什么?这是垃圾收集吗?
答案 0 :(得分:3)
定义方法时,编译器知道方法范围内的参数集,称为maxstack
。这暗示了为方法分配的内存量。
这个可以成为额外时间的来源 - CLR的内存分配。
添加更多大括号实际上并未向maxstack
添加更多参数。它的范围是整个方法。范围更像是一个逻辑分组,而不是由CLR实现释放内存。
关于GC的问题,我不相信这是问题的根本原因。在需要时,GC由单独的线程运行。 可以成为GC,但我非常怀疑你的情况。