微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 嵌入式设备Java平台及其虚拟机技术

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

时间:03-21 来源:3721RD 点击:

无线手持设备市场对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编译器和字节码解释器的组合。在开始阶段,程序解释器开始执行,同时软件对代码进行分析并决定哪些关键代码需要被编译,这些关键代码被鉴别出来后,即被编译成本地码运行。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top