hx_apple hx_apple
关注数: 5 粉丝数: 48 发帖数: 629 关注贴吧数: 27
根植LoongISA 服务新生态——龙芯Java虚拟机性能优化 (转转转) 2016-08-26 龙芯中科 Java虚拟机(JVM)是整个Java技术体系的核心,是实现Java平台无关性和安全性的基石。Java程序是平台无关的,但Java虚拟机却是平台相关的。目前,应用最广泛、设计最先进的Java虚拟机当属Oracle主力维护的OpenJDK系列虚拟机。但OpenJDK官方仅支持x86和sparc架构处理器(近几年才开始新增对Power PC和ARM架构的支持),并不支持MIPS处理器。 为了在龙芯处理器上运行Java,龙芯公司及时组建了Java虚拟机团队,专门负责OpenJDK在龙芯平台上的移植和优化。Java虚拟机团队经过好几年的艰苦攻关,终于使得Java可以稳定高效地在龙芯处理器上运行,为龙芯的市场开拓和生态建设奠定了坚实的基础。 目前,龙芯同时维护OpenJDK6(32位和64位)和OpenJDK8(64位)两个虚拟机版本。考虑到未来Java虚拟机的发展趋势,龙芯Java虚拟机团队主力维护OpenJDK8,后期所有升级和优化主要针对OpenJDK8进行;而OpenJDK6原则上只进行功能性Bug的修复。因此,为了更高的运行效率和更及时的技术支持,笔者强烈建议所有龙芯上的Java应用尽可能使用OpenJDK8开发。 2016年5月,龙芯OpenJDK8免费向全世界开源(http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fhg.loongnix.org&urlrefer=1967643e79f405b4e72b10ae67f2ec9d),龙芯将其多年的心血回报给了开源社区。据笔者所知,龙芯首次完整实现了OpenJDK的MIPS分支,堪称OpenJDK发展史上的一个里程碑。 那么龙芯OpenJDK8的开源是否标志着龙芯Java虚拟机的成熟呢?龙芯Java虚拟机团队在开源之后又做了些什么呢?未来龙芯Java虚拟机的发展当何去何从呢? 奔跑吧,龙芯JVM 龙芯对于Java虚拟机性能的追求永无止境。虽然Java应用早已稳定高效地运行在龙芯平台上,龙芯Java虚拟机团队从未停止前进的步伐。OpenJDK8 MIPS分支的开源对于龙芯而言,既是一种鼓舞和激励,更是一种鞭挞和责任。一方面,作为一个处理器硬件供应商,龙芯是整个国产自主信息产业生态链的根基,有责任将Java虚拟机等底层系统软件维护好,以向上层客户提供一个友好的开发平台。另一方面,作为OpenJDK唯一完整实现的MIPS分支,龙芯有义务持续优化,以便为更多的MIPS平台提供一个高效的Java运行环境。因此,龙芯Java虚拟机团队在开源之后没有丝毫松懈,继续加速向前奔跑。 龙芯开源社区(http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.loongnix.org%2F&urlrefer=cc64b790ad64574cf30480df36a7948b)网站中的Java版(http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.loongnix.org%2Findex.php%2FJava&urlrefer=a8727f08242c50f541ec519c0a88368a)是及时了解龙芯Java虚拟机最新发展动态的有效途径。从该版中我们可以看到,龙芯JDK8开源后仅一个月,龙芯又发布了JDK8 MIPS分支的新版本—JDK8-mips64-rc16。该版本消除了龙芯Java虚拟机中大量非对齐存储访问,并对虚拟机中数组拷贝进行了优化。业界权威的SPECjvm2008的评测数据表明,相对于上一个发行版,JDK8-mips64-rc16的性能提升幅度超过了20%! 根植LoongISA,服务新生态 对Java的高效支持是龙芯不断发展壮大其软件生态的关键。据Oracle的官方统计数据,全球有超过97%的企业基于Java进行应用开发。世界著名的编程语言排行榜TIOBE在2016年1月的统计数据表明,Java的流行度再次位居榜首。Java技术的应用和发展达到了前所未有的高度。凭借其优秀的平台无关性、安全性和网络移动性等优势,Java必将在云计算、大数据、移动互联网和物联网等新兴应用中大显身手。 既然Java对龙芯的软件生态如此重要,龙芯Java虚拟机未来的发展方向又是什么呢?对于这个问题,我们可以从龙芯OpenJDK8的开源代码中(http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fhg.loongnix.org%2Fjdk8-mips64-public%2Fhotspot%2F&urlrefer=7dfd083bd7eba3e942f50bd0283674a3)找到一些答案。从代码库中最近提交的patch可以大致推断出未来龙芯Java虚拟机发展的两个重要方向: 1. 基于MIPS兼容的LoongISA指令系统,充分挖掘龙芯处理器硬件性能 LoongISA指令系统兼容MIPS64指令,并新增了1400多条龙芯扩展指令,涉及基础指令、虚拟机指令、面向x86和ARM的二进制翻译指令和向量指令等四个方面。LoongISA是龙芯于2015年8月18日在其3A2000芯片中首次发布的一套自主指令系统。为了充分发挥LoongISA指令系统,尤其是龙芯扩展指令在Java虚拟机中的优势,龙芯Java虚拟机团队在其开源的OpenJDK8中首次引入了“UseLoongsonISA”优化选项。该优化选项标识着龙芯开始在其Java虚拟机中大范围启用自定义的扩展指令。通过虚拟机启动参数“-XX:- UseLoongsonISA”可以随时禁用针对龙芯特有的优化,从而兼容其它标准MIPS架构处理器。LoongISA可以更加充分地发挥龙芯处理器的硬件性能,期待未来可以将龙芯Java虚拟机的性能推向新的高度。 2. 将编译原理与龙芯具体实践相结合,深度优化虚拟机即时编译器(JIT)性能 龙芯近期提交了几十个性能优化的patch,其中绝大部分都是针对HotSpotServer版JIT的优化补丁。JIT编译器直接决定了Java虚拟机的性能,而HotSpot Server版JIT是OpenJDK中性能最高的编译器,故近期龙芯Java虚拟机团队倾注了大量心血对其进行深度优化。由于官方开源的JIT主要针对x86等传统架构的处理器进行设计,龙芯需要不断改进原始的编译器设计,以更好地适应龙芯处理器的硬件结构和流水线特性。目前龙芯正对OpenJDK8 Server版JIT的后端进行大刀阔斧的优化,其目的是为了强化JIT对LoongISA的支持,并且要让编译器更加适应龙芯处理器的流水线特性。当然,龙芯团队对于JIT的优化绝不会仅限于编译器后端,将来肯定也会对编译器的前端进行优化,以将处理器的性能发挥到极致。 龙芯Java虚拟机近期又做了很多优化,其优化的效果又如何呢?由于缺乏龙芯官方正式发布的优化数据,笔者将龙芯开源的OpenJDK8在3A2000机器上进行了编译,并以基本数学运算为例直观地感受了一下近期龙芯Java虚拟机的优化效果,如表1所示。表中优化前的数据表示JDK8-mips64-rc16虚拟机的性能,优化后的数据表示当前龙芯开源Java虚拟机的性能。从这些数据可以看出,乘除法和求余操作等基本数学运算的性能普遍提升70%以上。从龙芯开源代码所提交patch的描述信息可知,上述优化效果主要源于JIT编译器新增了对LoongISA中gsdmult和gsddiv等龙芯扩展指令的支持。可以预见,随着JIT对LoongISA支持的不断完善,龙芯Java虚拟机的性能将会越来越高。因此,“根植LoongISA,服务新生态”已成为未来龙芯Java虚拟机前进的重要方向。 龙芯OpenJDK8性能优化效果 随着应用系统对Java性能的要求不断增加,龙芯对Java虚拟机的优化是永无止境的。龙芯将其精心维护的OpenJDK8 MIPS分支开源,一方面是为了回馈开源社区;另一方面也希望能够吸引更多的开源爱好者加入到MIPS分支的开发者队伍中来。龙芯Java虚拟机团队迫切期待每一位开源爱好者的贡献。您可以通过龙芯开源社区(http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.loongnix.org%2F&urlrefer=cc64b790ad64574cf30480df36a7948b)积极参与龙芯Java虚拟机的开发和维护,为OpenJDK MIPS分支的持续优化和我国自主可控软硬件生态的建设贡献力量。未来,龙芯的软件生态会因为您的支持和参与而变得愈发精彩!
龙芯中科携手众达精电亮相国防电子展(转) 龙芯中科携手众达精电亮相国防电子展 2016-05-19 龙芯中科 “第十届中国国际国防电子展览会”于5月11日至13日在中国国际展览中心成功举办。始于1998年的中国国际国防电子展览会以其对新技术新产品的高度关注、对国防电子行业方向的充分引领、对军民融合深度发展的大力推进,获得了行业内外的广泛肯定。本届展会展出规模近20000余平方米,吸引海内外400家参展商参与,参观人数突破20000人次。 作为龙芯中科的战略合作伙伴,众达精电以自主可控的国产硬件解决方案亮相展会,在本次展会上展出了10多款龙芯嵌入式板卡解决方案。包括自主研发的基于龙芯1、2、3全系处理器的MINI模块、COM-E模块、CPCI、网络安全、显控一体及加固平板等解决方案,使观众可以直观地体验到龙芯产品的功能与性能,吸引了众多行业参会者的咨询。其中,基于龙芯最新一代3A2000处理器的COM-E模块,尤其引人注目。这款模块以其体积小,可扩展性强,应用范围广,受到了业内人士的广泛关注。 本次众达精电展出方案中,面向行业展示多种拓展应用,如龙芯+4G通讯、龙芯+车载CAN通讯、龙芯+LCD显示及触摸屏、龙芯+北斗等,为行业用户在车载/船载一体机、加固平板、加固笔记本、加固导航终端、加固无线通讯与控制等领域应用提供从硬件、操作系统到驱动的全方位支持。
1 下一页