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编译器会对本机代码进行优化

    学习永不止境,技术成就梦想。
  • 相关阅读:
    pg常用命令
    dmhs
    Redis集群
    Redis哨兵高可用架构
    Redis外网无法连接的问题
    Redis主从
    Redis持久化
    Redis安装
    Mysql执行计划详解
    Mysql安装配置
  • 原文地址:https://www.cnblogs.com/zd1994/p/6308840.html
Copyright © 2011-2022 走看看