问问题描述
答精选答案

程序的两种执行方式:
1、CPU直接执行CPU自身能理解的机器指令;
2、CPU执行虚拟机代码,虚拟机内部执行字节码;
一般来说,第二种情形的执行效率肯定是小于第一种!
为什么要使用JIT技术?
为了使CPU密集的程序在虚拟机中运行的更快!
JIT最基本的实现原理是什么?
首先将字节码翻译成CPU可直接理解执行的机器指令,在内存中分配空间存储翻译后的指令,设置指令指针指向代码地址。
下面结合两个文件(function.c,jit.c)来说明:
看,我们做到了!
如果不调用mmap,通过下面的方式是否可以直接运行代码呢?
答案是:不可以!如果你编译后执行会报错:Segmentation fault (core dumped)
因为mmap调用后,进程虚拟地址空间会多出一段区域,这段区域是可读、可写、可执行的,所以代码在这段内存空间是可执行的!
但执行失败的代码的问题是,你准备执行的指令是存储在数据段空间的,数据段空间的权限是:可读、可写,但是不可执行!所以这是报错的原因。
本文来自作者[广锐路桥工程材料]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/know/3517176.html
评论列表(4条)
我是公众科技网的签约作者“广锐路桥工程材料”!
希望本篇文章《什么是JIT设置》能对你有所帮助!
本站[公众科技网]内容主要涵盖:教育咨询,知识百科
本文概览:程序的两种执行方式:1、CPU直接执行CPU自身能理解的机器指令;2、CPU执行虚拟机代码,虚拟机内部执行字节码;一般来说,第二种情形的执行效率肯定是小于第一种!为什么要使用JIT技术?为了使CPU密集的程序在虚拟机中运行的更快!JIT最基本的实现原理是什么?首先将字节码翻译成CPU可直接理解执行的机器指令,在内存中分配空间存储翻译后的指令,设置指令指针指向代码地址。下面结合两个文件(function.c,jit.c)来说明:看,我们做到了!如果不调用mmap,通过下面的方式是否可以直接运行代码呢?答案是