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