当前位置:主页 > 科技论文 > 计算机论文 >

Lua虚拟机的机制分析

发布时间:2018-01-07 19:26

  本文关键词:Lua虚拟机的机制分析 出处:《广东工业大学》2015年硕士论文 论文类型:学位论文


  更多相关文章: Lua虚拟机 执行框架 效率 GC算法


【摘要】:自Lua从巴西天主教大学被开发出来已经有20多年。随着计算机应用技术的飞速发展和高级脚本语言的不断完善,Lua能很方便地嵌入到应用程序并为它们提供灵活的扩展和定制功能。与其它同类的高级解释型脚本语言相比,Lua有着两点非常重要的特性:简洁、高效。多数实验表明,Lua在程序执行效率上要比大部分的脚本语言(如Python、Perl等)高。另外Lua还提供非常丰富和实用的功能,比如函数式编程(所有的函数都是第一类值)、协同程序、自动内存管理等。由于Lua是用C编写而成,它与C/C++能非常方便的交互,而所有这些特性都归功于它有一个精简的、巧妙的、高效的Lua虚拟机的设计。Lua在相当长一段时间内都使用堆栈式的虚拟机,而从5.0版本后才改用寄存器式的虚拟机。基于寄存器的虚拟机减少了指令总数和指令执行时堆栈调整的开销因此执行效率得到提高。虚拟机的效率除了与指令操作数存储结构有关外还与编译和解释过程相关。解释性源程序一般要经过编译成字节码阶段,然后由解释器逐条解释和执行字节码。解释器中执行框架的设计直接影响了解释效率,Lua采用了一种最简单的执行框架设计方式(switch-case),由于它指令数较少,因此也获得了较好的执行效率。较新版本的Python虚拟机在采用了较好的指令分派方式后也获得了效率提升,而其它的采用效率更高方案的虚拟机必然也在设计上更复杂或占用更多内存。除此之外,垃圾回收(GC)算法也在一定程度上影响了虚拟机的效率,虽然Lua GC经过了若干技术的优化—比如分代的、增量式的垃圾回收—有着与其他GC机制相差不大的效率。但与其它虚拟机GC机制相比,Lua GC主体仍使用较为古老的标记-清除算法,该算法在标记和回收过程上都比较耗时而且在内存利用率(内存碎片的产生)方面有劣势,因而在性能上也略低于许多其它的虚拟机,Lua GC机制仍需要改善。本文首先简单的介绍了Lua的语言特性;然后深入分析了Lua虚拟机的实现,特别对Lua的编译过程、线程执行、函数调用和GC过程进行了深度探究;其次将Lua虚拟机中的关键技术与Python虚拟机的实现进行了比对,解释了其效率差异的原因;之后再对Lua虚拟机执行框架和GC机制进行改进,在执行框架中加入了查表分派和超级指令方式,在GC方面提出了滑动式分步拷贝算法,并将其应用于LuaGC;最后通过若干组测试用例对所作的改进进行试验,通过对实验结果的比较、分析和总结验证了改进的优势和不足。
[Abstract]:It has been more than 20 years since Lua was developed from the Catholic University of Brazil. With the rapid development of computer application technology and the continuous improvement of advanced scripting language. Lua is easy to embed into applications and provides flexible extension and customization capabilities. Compared with other advanced interpreted scripting languages of its kind, Lua has two very important features: simplicity. Most experiments have shown that Lua is more efficient in program execution than most scripting languages (such as Python Perl, etc.). In addition, Lua provides very rich and practical functionality. For example, functional programming (all functions are class I values, collaborative programs, automatic memory management, etc.) since Lua is written in C, it can easily interact with C / C. All of this is due to the fact that it has a concise, clever, and efficient design for Lua virtual machines. Lua has been using stack virtual machines for quite some time. The register-based virtual machine reduces the total number of instructions and the overhead of stack adjustment when the instructions are executed. The efficiency of the virtual machine is improved. The Operand storage structure is also related to the compilation and interpretation process. The interpretive source program is usually compiled into bytecode. Then, bytecode is interpreted and executed by interpreter. The design of execution framework in interpreter directly affects the efficiency of interpretation. Lua uses one of the simplest execution framework design methods, switch-casein, because it has a small number of instructions. As a result, better execution efficiency has been achieved. The newer version of Python virtual machine has also achieved higher efficiency after adopting better instruction dispatch mode. However, other virtual machines with more efficient schemes are bound to be more complex in design or occupy more memory. In addition, garbage collection GC-based algorithms also affect the efficiency of virtual machines to a certain extent. Although Lua GC has been optimized by several technologies, such as generational, incremental garbage collection, it is less efficient than other GC mechanisms, but compared with other virtual machine GC mechanisms. The Lua GC body still uses the older marker-clear algorithm, which is both time-consuming and inefficient in terms of memory utilization (the generation of memory fragmentation). Therefore, the performance of Lua is also slightly lower than that of many other virtual machines, the mechanism of Lua GC still needs to be improved. Firstly, this paper briefly introduces the language features of Lua; Then the implementation of Lua virtual machine is deeply analyzed, especially the compilation process, thread execution, function call and GC procedure of Lua. Secondly, the key technologies in the Lua virtual machine are compared with the implementation of the Python virtual machine, and the reasons for the difference in efficiency are explained. After that, the Lua virtual machine execution framework and GC mechanism are improved, the look-up table dispatch and super instruction mode are added to the execution framework, and the sliding step copy algorithm is proposed in GC. It was applied to LuaGC; Finally, the improvement is tested by several test cases, and the advantages and disadvantages of the improvement are analyzed and summarized by comparing the experimental results.
【学位授予单位】:广东工业大学
【学位级别】:硕士
【学位授予年份】:2015
【分类号】:TP302

【相似文献】

相关期刊论文 前10条

1 陈雪梅;可视虚拟机关键技术研究[J];广东科技;2005年08期

2 李超,方潜生;Java虚拟机中类装载机制的原理分析与应用研究[J];安徽建筑工业学院学报(自然科学版);2005年05期

3 张幼真;;用虚拟机实现多系统操作[J];微电脑世界;2005年09期

4 刘晖;;系统问答[J];电脑迷;2005年05期

5 朱海华;陈自刚;;Java虚拟机性能及调优[J];电脑知识与技术;2005年36期

6 杨丽洁;;虚拟机控制流的途径[J];河北工业大学成人教育学院学报;2005年04期

7 方向阳;;“虚拟机”在实验教学中的应用探索[J];中国现代教育装备;2006年11期

8 张广敏;盘细平;涂杰;;Java虚拟机的面向对象性[J];计算机应用与软件;2006年03期

9 北乡达郎;南庭;;嵌入式Java虚拟机渗透到手机以外的领域[J];电子设计应用;2007年10期

10 欧阳星明;朱金银;;虚拟机的可定制生成及其动态优化[J];计算机工程与科学;2008年01期

相关会议论文 前10条

1 孟广平;;虚拟机漂移网络连接方法探讨[A];中国计量协会冶金分会2011年会论文集[C];2011年

2 段翼真;王晓程;;可信安全虚拟机平台的研究[A];第26次全国计算机安全学术交流会论文集[C];2011年

3 李明宇;张倩;吕品;;网络流量感知的虚拟机高可用动态部署研究[A];2014第二届中国指挥控制大会论文集(上)[C];2014年

4 林红;;Java虚拟机面向数字媒体的应用研究[A];计算机技术与应用进展——全国第17届计算机科学与技术应用(CACIS)学术会议论文集(上册)[C];2006年

5 杨旭;彭一明;刑承杰;李若淼;;基于VMware vSphere 5虚拟机的备份系统实现[A];中国高等教育学会教育信息化分会第十二次学术年会论文集[C];2014年

6 沈敏虎;查德平;刘百祥;赵泽宇;;虚拟机网络部署与管理研究[A];中国高等教育学会教育信息化分会第十次学术年会论文集[C];2010年

7 李英壮;廖培腾;孙梦;李先毅;;基于云计算的数据中心虚拟机管理平台的设计[A];中国高等教育学会教育信息化分会第十次学术年会论文集[C];2010年

8 朱欣焰;苏科华;毛继国;龚健雅;;GIS符号虚拟机及实现方法研究[A];《测绘通报》测绘科学前沿技术论坛摘要集[C];2008年

9 于洋;陈晓东;俞承芳;李旦;;基于FPGA平台的虚拟机建模与仿真[A];2007'仪表,,自动化及先进集成技术大会论文集(一)[C];2007年

10 丁涛;郝沁汾;张冰;;内核虚拟机调度策略的研究与分析[A];'2010系统仿真技术及其应用学术会议论文集[C];2010年

相关重要报纸文章 前10条

1 宁家雨;虚拟机数据在哪个磁盘上?[N];网络世界;2009年

2 本报记者 郭涛;谁来填补虚拟机的安全漏洞[N];中国计算机报;2010年

3 本报记者 郭涛;VMware改变软件销售模式[N];中国计算机报;2010年

4 盆盆;真实的虚拟机[N];中国电脑教育报;2004年

5 ;利用工具解决虚拟机监测难题[N];网络世界;2007年

6 宋家雨;别拿虚拟机不当固定资产[N];网络世界;2008年

7 《网络世界》记者 柴莎莎;虚拟机通信可视性很关键[N];网络世界;2011年

8 Antone Gonsalves;Linux的虚拟化未来[N];中国计算机报;2007年

9 张承东;安全争议让虚拟化用户“心虚”[N];网络世界;2007年

10 本报记者 郭涛;消除虚拟机备份的尴尬[N];中国计算机报;2012年

相关博士学位论文 前10条

1 陈彬;分布环境下虚拟机按需部署关键技术研究[D];国防科学技术大学;2010年

2 刘海坤;虚拟机在线迁移性能优化关键技术研究[D];华中科技大学;2012年

3 刘谦;面向云计算的虚拟机系统安全研究[D];上海交通大学;2012年

4 赵佳;虚拟机动态迁移的关键问题研究[D];吉林大学;2013年

5 邓莉;基于虚拟机迁移的动态资源配置研究[D];华中科技大学;2013年

6 李丁丁;虚拟机本地存储写性能优化研究[D];华中科技大学;2013年

7 董玉双;云平台中虚拟机部署的关键问题研究[D];吉林大学;2014年

8 曹文治;虚拟机网络性能优化研究[D];华中科技大学;2013年

9 杜雨阳;虚拟机状态迁移和相变存储磨损均衡方法研究[D];清华大学;2011年

10 邹琼;Java虚拟机的自适应动态优化[D];中国科学技术大学;2008年

相关硕士学位论文 前10条

1 邓洋春;Java虚拟机关键机制研究与实践[D];中南大学;2009年

2 陆晓雯;虚拟机资源监测调整机制研究[D];华中科技大学;2008年

3 杨卫平;面向虚拟机的网络入侵检测系统[D];华中科技大学;2008年

4 张德;硬件虚拟机的域间通讯和性能模型研究[D];华中科技大学;2008年

5 吴晓丹;反病毒虚拟机关键技术研究[D];中国科学技术大学;2009年

6 赵彦琨;虚拟机管理平台中的虚拟机代理服务机制研究[D];华中科技大学;2009年

7 袁e

本文编号:1393926


资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/1393926.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户e2b48***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com