日期:2014-05-17  浏览次数:20785 次

。net 程序的运行、编译
我了解.net编译成il后还要经过jit编译才能运行,我也基本了解程序运行的时候第一次会很慢。

有一点不明白,当我运行一个.net程序(第一次运行),明显能感觉到启动速度比较慢,然后我
把这个程序关闭,关闭后再运行这个程序(是关闭后再运行这个程序),启动速度很快。我想知道为什么我关闭
这个程序后再运行,的启动速度这么快呢,不是说第一次运行的时候需要经过jit编译的吗,
难道第一次运行程序后jit编译后的机器码会保存在什么地方,让程序在关闭后再运行就直接用那些代码????????????????

------解决方案--------------------
硬盘io是非常影响性能的,操作系统有缓存。

和什么jit没关系。你第二次打开word photoshop vs也会快很多。
------解决方案--------------------
第一次慢说的是asp.net,IIS会缓存中间码,winform程序不存在这个问题,你所感觉到的东西是操作系统的原因,和.net无关。
------解决方案--------------------
这个jit本身不会太慢的,之所以慢是因为第一次是从硬盘启动,第二次是从硬盘的缓存启动,这个你可以用C++写一个功能一样的程序做个试验就知道了