嵌入式Java虚拟机的改进.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Java虚拟机的改进.doc

嵌入式Java虚拟机的改进   摘 要:本文研究了Java技术在嵌入式领域应用中所存在的系统占用资源较多和程序执行效率较低两个关键性难题。在研究国内外目前应用于嵌入式Java虚拟机中的各种性能优化技术和尚待解决的问题的基础上,尝试从对垃圾回收方式改进和虚拟机内部结构改造两方面对两个难题提出了解决的新方法。结合在垃圾回收和虚拟机内部结构方面的改进,本文搭建了一个新的改进型嵌入式Java虚拟机。   关键词:嵌入式Java;虚拟机;垃圾回收   中图分类号:TP307   从1993年美国Sun公司提出Java语言规范和Java虚拟机规范的Java技术以来,关于Java的应用和研究就一直呈逐渐上升的趋势。随着互联网的不断发展,Java语言以其独特的平台无关性和安全性迅速占领了PC端和Server端。现在Java技术已经被广泛的应用到了嵌入式领域,形成了嵌入式Java技术。嵌入式Java技术就是将采用Java语言编写的应用程序嵌入到电话、电视、洗衣机、电冰箱等各类消费类电子产品中,使这些设备具有了计算机的计算、执行等部分功能。并且由于有嵌入式Java技术的互联网接口功能,各种嵌入设备可以安全地通过网络接受和执行应用程序[1]。   Java语言、JVM和Java API是Java技术主要组成部分,而JVM(Java虚拟机)是其在嵌入式系统应用的主要瓶颈。嵌入式系统与微型计算机系统有很大的差异,所以Java语言在嵌入式系统的应用中所出现的问题也常有它自己的特色。Java语言的全新处理方式其关键创新有两点:(1)编译在服务器端进行,编译过程中只是将Java源程序编译为与平台无关的字节码型中间代码;(2)客户端上安装了Java虚拟机JVM,JVM以解释的方式执行中间代码程序。Java语言其独特处理过程如图1所示:   从上面的图可知,经过编译之后Java程序所生成的不是能直接在处理器上运行的机器码,而只是在虚拟机上运行的Java字节码型中间代码,然后由不同平台上虚拟机根据自己平台将字节码译成其处理器真正可执行的机器码后运行。由于Java程序存在这一比较复杂的编译、译码过程,其运行所耗费的时间将会是C或C++等高级语言编译的相同功能指令程序的好几倍,甚至几十倍。因此,在Java得到广泛应用的同时,也存在一个影响使用的最大问题—执行速度慢。关于如何提高Java虚拟机的执行效率方面的研究已经成为了Java研究的热点[2]。   针对嵌入式Java虚拟机存在的两个难题——硬件资源少和运行速度慢,本文在嵌入式Java虚拟机的结构设计和内存管理方面作了一些探索研究,主要包括两个方面:数据堆栈结构优化和垃圾回收算法的改进。   1 数据堆栈结构优化   现在嵌入式系统中常采用的是基于堆栈的处理器,因为这类处理器支持比较短小的程序,在资源有限的嵌入式中也能工作得很好。在执行同样一个程序时,基于堆栈处理器编译出来的机器码要比基于寄存器的处理器编译出来的机器码小好几倍。但基于寄存器的处理器也有一个极其重要的优势:速度快。基于堆栈的处理器,它的堆栈几乎都是在外部内存里的,这就造成即使执行一个面向堆栈的基本操作,处理器也需要到内存里去读取数据,大大降低了基于堆栈的处理器的执行速度[3]。经过对基于堆栈的处理器与基于寄存器的处理器优缺点的分析,它们的优势和劣势主要体现在具体的硬件上。由于虚拟机是完全以软件构成的,没有硬件设备,所以在本文虚拟机设计当中不像一般Java虚拟机那样完全采用基于堆栈式的结构,而是吸取了这两种结构的优点,采用了既有堆栈又有寄存器的机器结构。   2 垃圾回收算法改进   常用的垃圾回收算法有标记压缩法、停止拷贝法以及标记清除法,它们都有一个共同的特点,即一次性对整个内存的垃圾进行回收,在垃圾的回收过程当中可能会致使其它程序被明显地中断,影响了这些方法在实时系统等对系统运行时间有较高要求的环境中的应用。   针对这些问题本文采用增量式跟踪法来进行优化,增量式跟踪法的基本思想是将垃圾回收过程分成若干小片与应用程序交叉运行。   通过下图的三色模型对垃圾检测过程进行介绍。在内存检查过程开始时,所有的结点都为白色。从根结点开始检查,将可以直接访问到的结点标记为灰色,然后对灰色结点进行检查,一个灰色结点的所有子孙都经过检查后,则将此结点改为黑色,整个检查过程结束后,只剩下黑色结点和白色结点,此时黑色结点对象为可以访问的对象,而白色结点则是需要回收的对象。因为这一标记回收过程是和应用程序“并行”工作的,所以为了保证垃圾回收的正确性,程序的执行必须要遵守一条原则,即应用程序不能将一个黑色结点上的指针指向一个白色结点,原因是可能导致此结点可能被错误地作为垃圾清除掉,如图2所示,当A的子孙检查完成后,B和C被标记为灰色,下一

文档评论(0)

ganpeid + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档