最近在看《JAVA虚拟机》这本书作者写得不错,特别是由国人原创的。
根据书中,写出部分自己的理解(部分可能与作者的意识不一致)
关于对于不同的虚拟机,基本都具有解释器和编译器
编译器:
对于语句进行编译,使之成为本地机器码,因此运行速度将相当快,但是启动也会非常慢。
解释器:
只在执行时,在进行编程为本地机器码,所以运行速度慢,但是因不用进行编译成机器码,所以启动快。
对此,不同的虚拟机,也将采取分步的优化,当然也有对应防偏激进化的逃生门。
进行优化的是以作为热点的代码段,进行编译为本机机器码,而判断是否热点,
有两分法:
1、周期性检测堆栈中的对象,属于抽样分法,实现简单,但是很难获取真正的热点程序段。
2、为每个方法或者程序段建立计数器,实现麻烦,且需要消耗部分内存,但是数值准确。
而计数器需要有阙值来进行判断是否已经为热点。
判断分法:
1、方法调用计数器
2、回边计数器
以后会继续写出后续篇。谢谢~
希望更多人把时间花在生活、陪家人和女朋友身上,而不是敲代码上。
分享到:
相关推荐
NULL 博文链接:https://xinklabi.iteye.com/blog/1934544
Lua5.3.5版本解释器+编译器+依赖文件,可用于Window系统
编译原理技术强化的很好练习,其中讲解细致,又有ppt说明应该能够帮助大家!
PL0编译好后,会生成名为"hbin.txt"的目标代码,再把这个代码在分离出的解释器中运行就可以实现了
官网下载的源码 然后自己生成了编译器 解释器和库文件 只需要把你的lua文件放在与lua exe同一目录然后运行lua exe 输入dofile "lua文件名" 回车就可以运行lua文件啦 方便新手用
lua5.3.5最新解释器、编译器、静态库、用户手册及c源码的安装包,附加2048游戏脚本,完整实用资源,请下载。 Lua是一个小巧的脚本语言。它是于1993年开发的。 其设计目的是为了通过灵活嵌入应用程序中从而为应用...
在本文中小编给读者们整理了关于python编译器和解释器的区别的知识点内容,有兴趣的朋友们跟着学习下。
这是我在大三的时候解释器实践的课程设计,是用C#开发的,包括词法分析、语法分析和编译执行阶段,文档比较齐全,可供初步学习解释器的同学看看,但不鼓励直接拿来当作业用,起码也得自己看看源码,分析分析下,对...
一个运行在控制台界面下的BrainF**k编程语言的解释器,调试器和编译器,由作者本人上传,且不断更新中。详见:http://tieba.baidu.com/p/3606138253
ohm, 用于构建解析器解释器编译器等的库和语言 欧姆 是一个解析器生成器,由一个库和一个特定的领域语言组成。 你可以使用它解析自定义文件格式,或者快速构建解析器。解释器和编程语言的编译器。 基于xml的欧姆定律...
只是觉得这么好的一个工具,不象某C解释器那样由开源转收费,也不象ROOT里面的CINT那么庞大,实在难得。 BTW: 软件的主页http://bellard.org/tcc/ http://bbs.pediy.com/showthread.php?t=107395
学长写的C0语言编译器和解释器。进行了一些完善,主要优化解释器代码结构,增加乘除运算符,修复一些已知编译bug。
这是一个受 Abelson 和 Sussman 的优秀著作“计算机程序的结构和解释”启发的 Scheme 实现。一些特点实现方案标准 (R5RS) 的子集(Revised5 ...建造跑步目录 bin 包含脚本 sci.sh(解释器)和 scc.sh(编译器)。 这
tiny语言编译器源码,为新手学习编译原理提供很大帮助,包括tiny语言编译器和解释器,还有使用说明。
本下载包含: Lua 5.0.2的解释器,Lua.exe, Lua 5.0.2的编译器,Luac.exe, Lua 5.0.2的库文件,lua*.lib, Lua 5.0.2的头文件,lua.h、lualib.h和lauxlib.h。
Python解释器下载地址 Python的版本可以选3.5,3.7,3.8。切记,Python2与Python3不兼容。因此不要下Python2,并且开发者也声明Python2很快就会被淘汰。 Python解释器下载的顺序: 1.选择Install now 2.切记,一定要...
从 Java 子集的字节码设计的解释器和调试器 使用说明 要从命令行运行项目,请键入以下内容: java -jar "Interpreter.jar" 运行解释器和 java -jar "Interpreter.jar" -d 运行调试器 调试器命令 [break] 设置/清除...
国际金融联合会 ICF - 解释器和编译器框架 基于 Ronald Mak ( ) 的书“编写编译器和解释器 - 一种软件工程方法”
用java编写的快速brainfuck解析器、解释器和编译器。 命令行 bfj 包含一个简单的命令行界面,用于运行和优化 Brainfuck 程序。 java -jar bfj.jar program.bf 选项: --charset 定义输入文件的字符集。 默认为...
自制脚本语言的编译器与解释器。另包含词法分析器、正则表达式解析器、编译器的自动生成器。支持if、else、while、函数、递归函数等特性。例如阶乘函数: int fact(int a){if(a) return 1; return a*fact(a-1);} int...