首页 新闻 会员 周边

C#为什么对同一段代码第二次执行速度会快很多?

0
悬赏园豆:40 [已解决问题] 解决于 2010-09-18 22:39

刚刚用C#写了一个排序算法,在运行中对该算法执行了二次,第一次需要1000多微秒,但第二次仅需要10微秒。请问各位大虾这是为什么?

高建生的主页 高建生 | 初学一级 | 园豆:100
提问于:2010-09-17 21:57
< >
分享
最佳答案
0

因为 .NET 程序从源代码到机器代码会经历两个过程:先从源代码 到IL 中间代码:再在程序执行的时候,JIT 会将中间代码 编译成机器代码。在代码第一次执行的时候有上述过程。然后编译后的机器代码会被缓存起来。所以第一次执行的速度会长一些,而第二次速度就快很多, 因为不需要再从 IL 到机器码的编译过程。

收获园豆:20
HUHU慈悲 | 大侠五级 |园豆:9973 | 2010-09-17 22:08
其他回答(2)
0

第一次会从IL执行,然后是函数本身

第二执行,就直接从函数本身开始。

收获园豆:10
一滴血 | 园豆:1602 (小虾三级) | 2010-09-17 22:09
0

第一此是边编译边执行,第二次以上是直接解释执行,因为第一次已经编译了呀,而且这些编译过的代码会在内存里存在一段时间,所以接下来的运行会快一点

收获园豆:10
Pola'ZeYu | 园豆:235 (菜鸟二级) | 2010-09-18 01:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册