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