【发布时间】:2012-02-25 21:16:28
【问题描述】:
当我使用一些 .net 程序集并在机器上运行它时 => JIT 将代码转换为本机并运行它。 如果我将停止应用程序并再次运行它,它将(再次)加载到 JIT 中,JIT 将再次转换它并再次运行它。
那么为什么应用的第二次运行会更加优化和溃烂呢? JIT 是否以某种方式保存了第一个本机代码,然后无需将代码再次从 IL 转换为 native ?如果是“是”,那么转换后的代码(本机)保存在哪里?
【问题讨论】:
-
您必须考虑 .net 需要加载的所有库才能运行您的应用程序,而不仅仅是您编写的代码。因此,一旦将它们加载到内存中,速度就会快得多。
-
简单的磁盘缓存可能会解释很多......
-
你如何衡量它实际上更快?