重庆网站制作定制,建设网站用凡科怎么样,国外网站建设什么价格低,婴幼儿网站模板多年以前,分析过编译过程,并写了一篇博客,现在对编译过程有了更广阔的认识,记录在此
编译过程 中的 链接与 编译
编译过程分为1. 预处理2. 编译3. 汇编4. 链接其中有 2个过程比较特殊,1. 编译2. 链接对于C程序来说,链接分为提前链接(静态链接)对应下图第1行运行时链接(动态链…多年以前,分析过编译过程,并写了一篇博客,现在对编译过程有了更广阔的认识,记录在此
编译过程 中的 链接与 编译
编译过程分为1. 预处理2. 编译3. 汇编4. 链接其中有 2个过程比较特殊,1. 编译2. 链接对于C程序来说,链接分为提前链接(静态链接)对应下图第1行运行时链接(动态链接)对应下图第2行
对于C程序来说,编译分为普通编译.c - 与host同架构的.o交叉编译.c - 与host不同架构的.o提前编译(AoT) // Ahead-of-Time Compilation // 这里的编译也可叫做 翻译与host不同架构的.elf(中的指令) - 与host同架构的.elf(中的指令)对应下图第6行运行时编译(JIT) // Just in time Compilation // 这里的编译也可以叫做 翻译与host不同架构的指令 - 与host同架构的指令对应下图第5行解释运行 与 JIT编译运行的区别
解释运行和JIT编译运行(类似qemuJIT编译host直接运行)的区别以 下面和下图 为例bash 对 shell脚本的解释运行 // 下图第3行qemu 的 JIT // 下图第5行虽然两者都涉及代码的执行但其输入和输出确实有很大差异。
1.Bash对Shell脚本的解释运行输入 输入是Shell脚本文件包含一系列命令和操作。输出 输出是执行命令后的结果可能是文本输出、系统状态更改等。2.QEMU的JIT即时编译输入 输入是客户机指令例如ARM、x86等指令集。输出 输出是将这些客户机指令翻译(编译)为宿主机机器指令以便在不同架构之间进行硬件级的仿真。jvm 的 JIT 和 qemu的JIT
1. JVM中的JITJava虚拟机的即时编译器输入 Java虚拟机的JIT编译器接收Java字节码作为输入。Java源代码经过编译器编译成字节码JIT编译器在运行时将这些字节码转换为特定平台的本地机器码。输出 JIT编译器的输出是特定平台的本地机器码它是对Java字节码的即时编译结果。这些机器码被直接执行以运行Java程序。2.QEMU中的JITQEMU的动态二进制转换器输入 QEMU的JIT编译器接收客户机指令例如ARM、x86等指令集作为输入。QEMU在模拟不同体系结构时会将客户机指令翻译成宿主机机器指令。输出 JIT编译器的输出是宿主机机器指令这些指令是对客户机指令的翻译结果。它们被用于在不同架构之间进行硬件级的仿真。虽然两者都涉及到将一种形式的代码转换为另一种形式的代码但输入和输出有所不同因为JVM的JIT编译器针对Java字节码进行处理而QEMU的JIT编译器处理不同体系结构的指令集。几种常见的编译及加载运行方式