存储过程如何在vb.net中运行

时间:2011-12-22 12:16:25

标签: vb.net

我注意到以下内容但无法理解原因。

每当在.net中调用一个过程时,它需要的时间比随后调用过程要多。

即使在某个时间间隔之后调用过程,如果频繁调用它也需要花费更多的时间。我不是在询问sql查询或sql命令。任何用户定义的函数或用户定义的方法在偶尔调用时需要花费更多的时间。但是当经常调用相同的程序时,它会更快完成。为什么呢?

是什么原因,任何身体都可以帮助。

1 个答案:

答案 0 :(得分:2)

在.NET语言中,您编写的代码被编译为通用中间语言(CIL,或简称IL)字节码。然后,机器上的JIT编译器在运行时将该CIL转换为本机指令。因此,如果您使用的是x86计算机,JIT编译器会将CIL字节码转换为x86汇编指令并执行它们。

为了加快执行速度,JIT编译器会暂时缓存已编译的本机代码。当您的代码离开某些代码的范围并且暂时不返回它时,将删除缓存条目。

当您在每次调用之间只花费少量时间重复运行方法时,本机代码将保持缓存状态,无需重新编译。如果您不经常调用它,则缓存条目将过期,代码需要重新编译。

所有这些都高度依赖于您正在使用的.NET运行时,因为它背后没有标准化的行为。