zoukankan      html  css  js  c++  java
  • JIT即时编译器

    一、什么是JIT?

    即时编译器,负责将IL转换成本机CPU指令

    二、JIT编译原理

    ①在Main方法执行之前,CLR会检测出Main的代码引用的所有类型。会导致CLR分配一个内部结构。在这个结构中,Console类型定义的每个方法都有一个对应的记录项
    ②Main方法首次调用WriteLine时,JITComplier函数会被调用。JITComplier函数负责将方法的IL代码编译成CPU指令
    ③修改最初对JITComplier的引用,使其指向内存块(包含了刚才编译好的本机CPU指令)的地址
    ④当Main要第二次调用WriteLine时,会直接执行内存块的代码,完全跳过JITComplier函数

    第一次调用Console.WriteLine

    第二次调用Console.WriteLine

    方法仅在首次调用时才会有一些性能的损失。以后对该方法的所有调用都以本机代码的形式全速运行,无需重新验证IL并把它编译成本机代码

    JIT编译器将本机CUP指令存储到动态内存中,这意味着一旦应用程序终止,编译好的代码会被丢弃

    CLR的JIT编译器会对本机代码进行优化

    学习永不止境,技术成就梦想。
  • 相关阅读:
    断棍构造过程-波利亚翁方案-中餐馆过程
    狄利克雷过程
    狄利克雷分布
    共轭先验(conjugate prior)
    镜像与文件系统
    Oracle-04
    Oracle-02
    Oracle-01
    认识数据库
    c:forEach的作用
  • 原文地址:https://www.cnblogs.com/zd1994/p/6308840.html
Copyright © 2011-2022 走看看