Intermediate Language 及Just In Time

    技术2025-02-08  24

    CLR 执行引擎。

    Intermediate Language 及Just In Time 编译器

       

    在了解 CLR 所扮演的角色后,我们要介绍 IL (Intermediate Language)以及JIT (Just In Time) 编译器。旧版的ASP 是以直译的方式一行一行的执行程序,所以如果网页程序太复杂或是浏览 人数变多,或是服务器负载变重,其执行的效率可想而知。ASP.NET 为了改善执行的效率,以 及让程序将来可跨平台执行,所以便设计了 IL 以及JIT 编译器。IL 这种架构非常接近机器码, 可以非常有效率的透过JIT 编译器转换为机器码;而透过JIT 编译器所编译出来的机器码还是被 CLR 所管理。IL 含有许多广泛的指令,不但包括对象的加载、排序、初始、以及方法呼叫的指 令(关于对象、方法等,第三章有详细的讨论),而且还有算数暨逻辑运算、流程控制、直接内 存存取,以及例外处理的指令。不过因为每个 CPU 的架构都不一样,所以IL 不能够直接执行; 必需透过JIT 编译器先转换成被CPU 所认识的指令后才可执行。只要有支持该种 CPU 架构的 JIT 编译器,就可以把 IL 编译成可以在该 CPU 架构上执行的机器码,这意味着 IL 透过各种JIT 编译器将可以跨平台。而 IL 这种格式又非常接近机器码,直接由这种格式透过JIT 编译器编译 成机器码的速度又非常的快,所以第一次执行aspx 网页时需要编译成IL 效率较差外,尔后只要 aspx 网页没有异动过,就只要从IL 透过JIT 编译器编译成机器码就可以执行,效率当然比以前 的ASP 网页以直译器来执行的效率提升许多。编译成IL 也有另外一个好处,那就是只要该种程 序语言可以被编译成 IL,就可以由JIT 编译器编译执行。所以不管该组件用VB、C#、Java 或 其它语言所写成的,都可以被结合在一起使用;这个结合组件的动作称为组装(Assembly )。 

    最新回复(0)