【发布时间】:2014-06-02 06:51:53
【问题描述】:
我使用的是 Ants Performance Profiler 8.5,当我看到每行代码运行的时间时,我注意到大括号也需要时间。
这是一张图片,你可以在大括号的左边看到以毫秒为单位的时间:
有时我会得到更多的时间,比如 5 毫秒...
这是为什么呢?是垃圾回收吗?
【问题讨论】:
-
我认为您误读了它...返回需要 0 毫秒?虽然它可能是垃圾收集(用于临时 var 声明),但它看起来更有可能是时间偏移
-
文档怎么说?我只能猜测它会在堆栈上处理参数,在堆上准备本地,最后处理输出参数和清理?
-
分析器只能测量从 C# 代码生成的机器代码所花费的时间。从机器代码到 C# 代码的映射并不总是完美的。特别是当您像往常一样分析优化代码时。在花括号处,为方法设置堆栈框架并再次将其拆除是有开销的。这最多需要几纳秒,乘以方法被调用的次数。测量 5 毫秒是过度的,应该被视为“实验错误”。
-
@Hans 这听起来像是对我的回答。
-
这是一个提示,我无法解释 5 毫秒。
标签: c# performance profiling ants