嵌入式设备Java平台及其虚拟机技术

分享到:

 无线手持设备市场对Java产生了巨大的需求增长,目前每10台新出手机中就有8台支持Java。本文关注嵌入式设备Java平台的性能问题,详细介绍振戎融通自主研发的Java虚拟机产品——JMO+(JMOplus)的性能优化技术。

在过去的几年里,Java已经在各个领域得到了广泛的应用,尤其是无线移动领域,全球180多个移动运营商已经推出了Java下载服务。无线手持设备市场对 Java产生了巨大的需求增长,目前每10台新出手机中就有8台支持Java。广大的消费者,运营商,服务/内容提供商以及手机制造商强烈渴望手机的 Java性能更加强劲,支持更多更复杂的应用,为产业链各方带来更多商机和收入,为用户带来更丰富多彩的增值应用。

北京振戎融通通信技术有限公司(以下简称振戎融通)一直致力于嵌入式Java技术的研究、开发和推广,立志通过对国际先进技术的引进、掌握和创新,迅速实现专有技术的国产化,最终拥有整套先进技术产品的自主知识产权。本文着重关注嵌入式设备Java平台的性能问题,详细介绍振戎融通自主研发的Java虚拟机产品—— JMO+(JMOplus)的性能优化技术。

Java功能和性能支持

嵌入式Java经过几年的蓬勃发展,所支持的应用越来越丰富,功能也越来越强大,诸如3D游戏、多人联网等更高级的支持也已纷纷涌现。运营商和手机制造商希望出现更具可玩性的游戏,并期望充分利用 Java技术发展诸如商务、定位、视频等各种各样的增值服务,以期带来更多收入。

为了支持这些新的业务,Java虚拟机必须不断集成新的API。因此, JCP(Java Community Process)这一业界唯一的Java标准化机构不断制定、发布相应功能的技术标准。 2004年振戎融通公司正式成为JCP成员,并且是几个重要JSR 标准的专家组成员,参与这些标准的制定工作。振戎融通JMO+产品最为广泛的支持了现在比较流行和通用的JSR标准,并根据市场的需求和客户的需要提供一些扩展功能的支持,在功能上能够提供给一个功能强大的移动Java运行平台,能够让用户感受到JAVA的丰富多彩,可以说JMO+产品在功能支持方面处于行业的领先地位。

北京振戎融通通信技术有限公司针对市场的需求,在JMO+性能方面运用了多种技术进行优化,针对不同的硬件平台采用不同的优化技术,以提供最优的性能体验。

Java虚拟机的性能瓶颈

Java 是一种解释执行的语言,它的优势是“一次编译,到处运行”,因此Java具有很好的可移植性,开发和发布Java应用都很便捷,快速上市,节约成本;另外一个优势是Java字节码代码密度高,程序体积较小,便于进行下载,和装入资源有限的嵌入式设备中。这种优势是明显的,但对于嵌入式Java来说,由于其机制而带来了不可避免的性能瓶颈。业界针对这个性能瓶颈都在寻找各自不同的解决之道,振戎融通在这方面也进行深入的研究,在解决这个性能瓶颈的方面取得了不菲的成绩,性能解决方案处于业界领先地位。

Java性能优化方案

加快Java执行速度的方法包括几种软件方案,如字节码解释器优化、即时编译器、预先编译器、动态自适应编译(DAC)等。这些方法都能在一定程度上提高Java的性能,但同时也会带来一些负面影响,比如这些软件方案通常会增加对功耗、内存的需求,或是延长启动时间以致系统存在停顿感等现象。

硬件的解决方案有专用Java处理器和 Java协处理器,以及ARM推出的Jazelle DBX硬件指令集。这些方案在解决Java的效率方面的确发挥了重要作用,并有可能是今后的一个发展方向,特别是Jazelle技术。但是,硬件的解决方案将增加硬件成本和嵌入式设备系统的设计成本,并降低灵活性,这是设备制造商不愿意接受。因此,硬件的解决方案可以用于高端市场,但对成本敏感的中低端市场来说,该方案存在成本压力。

JIT和AOT编译器

JIT或 AOT编译器是把字节码动态地编译成目标平台的本地码,然后直接执行。顾名思义,AOT编译方案就是在应用下载完后编译所有代码,而实际上,某些代码很有可能根本就执行不到。JIT编译方案则是在运行到某段代码之前,才对这一段代码作即时编译。这种即时处理策略会让用户在选择启动应用程序后,需要等待很长一段时间,程序才真正运行起来。另外,有研究显示,动态编译会导致代码大小增大4~6倍。因此,除了降低应用程序的启动速度外,无论JIT还是AOT方案,都需要很大的额外内存来保存编译生成的本地码。

DAC动态自适应编译

动态自适应编译(DAC)是一种弥补 JIT编译器缺点的方法。它采用通常被称为的混合软件方案,可以被看成是JIT编译器和字节码解释器的组合。在开始阶段,程序解释器开始执行,同时软件对代码进行分析并决定哪些关键代码需要被编译,这些关键代码被鉴别出来后,即被编译成本地码运行。

Jazelle DBX技术

Jazelle DBX 是一种硬件架构扩展技术,为ARM处理器引入了第三套指令集—Java字节码。新指令集建立了一种新的状态,处理器在此状态下处理Java字节码取指、译码和维护Java操作数栈。这种硬件架构扩展技术,重用已有的处理器资源不会增加额外的硬件成本和功耗,带扩展的内核能够同时执行Java字节码及本地码,开发者可以充分利用已有的操作系统、应用程序开发技术,在Java程序可移植性和性能之间取得很好的平衡。

JMOplus的性能优化方案

振戎融通在解决性能优化问题时,深入的分析了目前的软件和硬件的解决方案,总结其中的优势和弊端,综合运用了这些优化方法,并进行了相应的改进。

每一种优化方法都有其存在的道理,针对某种情况的优化效果是最好的,但在某种情况下,其弊端表现的又十分的明显,我们经过了大量的实际测试数据,将各种性能优化方案有机的结合在一起,让他们共同发挥作用,即解决了性能的优化,又在相当的程度上避免因为引入优化算法而带来的负面影响。

比如采用 AOT和DAC的结合方案,通过大量的应用测试数据统计分析,找出调用频度最高的Java API进行AOT,这样即得到了AOT的快速执行,又最大限度的控制了因为AOT而带来的体积膨胀,优化DAC的选择算法,使得Java虚拟机避免陷入盲目的编译过程,制定DAC的执行时机,在应用启动时,关闭DAC功能,这样不会因为DAC的编译而让用户忍受漫长的应用启动阶段。

根据不同的终端,动态的调整AOT和DAC的搭配比例,比如,在RAM相对ROM空间需求宽松时,将DAC的比例提高;在ROM相对RAM空间需求相对宽松时,将AOT的比例提高。

在支持Jazelle指令集的情况下,加入Jazelle加速技术,并调整AOT和DAC的相关参数,将Jazelle支持的Java指令,并不进行AOT和DAC的优化,而直接由芯片直接执行,这样即增加了效率而且节省了功耗。

还进行市场的进一步细分,比如针对游戏市场,定位市场,商务市场等,每个细分市场,其运行的Java应用都会有所侧重,进而其使用和调用的Java API的频度分布也是不同的,根据调用频度的分布,调节AOT和DAC在不同市场的优化方案会更加有效。

振戎融通不仅拥有了先进的性能优化技术,并且更深入的挖掘优化的细节,使得JMO+产品在业界处于领先的地位。经过业界权威测试工具测试比较表明,JMO+在功能、性能和质量上已经达到了国际先进水平。目前JMO+已经获得摩托罗拉、三星、LG、SKTT、TCL、UT等国内外主流手机厂商采用,已经有近 20款、100万台手机采用,成功取得了规模化商用。

继续阅读
Android非标准硬件驱动程序的设计

在深入研究Android硬件抽象层HAL和Java本地接口JNI技术原理的基础上,提出了一个Android非标准硬件驱动程序的设计方案。以一个非标准设备的驱动程式的实现为例介绍了驱动程序的功能模块分层设计,讨论了使用HAL Stub技术对硬件抽象层HAL模块进行优化的方法。

嵌入式设备Java平台及其虚拟机技术

无线手持设备市场对Java产生了巨大的需求增长,目前每10台新出手机中就有8台支持Java。本文关注嵌入式设备Java平台的性能问题,详细介绍振戎融通自主研发的Java虚拟机产品——JMO+(JMOplus)的性能优化技术。

Android平台的多分辨率屏显设计及其兼容性测试

0 引 言 2007 年11 月,Google 公司发布基于Linux2.6 内核的移动终端操作系统- Android, 由于其开源性, 得到很多手机厂商的追捧和应用开发者的青睐。近年来智能手机发

JAVA和C++区别详解

java是解释性语言,java程序在运行时类加载器从类路经中加载相关的类,然后java虚拟机读取该类文件的字节,执行相应操作.而C++编译的 时候将程序编译成本地机器码.一般来说java程序执行速度要比C++慢10-30倍

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss