Android设备很丰富,系统升级也很频繁,Google对
Dalvik虚拟机的优化和Android应用架构的改善有长足的进步,如Android 2.1升级到2.2时引入了JIT(just in time)机制,使应用效率提升了2-4倍,而Android 4.1黄油计划对UI流畅度也有作出了贡献,Google的努力值得赞扬,但一方面也说明此前Android效率的低下,而未来进步的空间还有多少?我们用数据来说话。下面我们将分别在Android平板与电脑下对Android Java与Sun Java作对比测试,以了解两者的性能差异和各自适用的场景。
Dalvik VM与Sun Java VM的性能差异
测试设备分别为:MacBook Pro(2.26 GHz Intel Core 2 Duo),Google Nexus 7(1.3GHz四核Tegra 3)
软件环境:Java 1.6.0_37和Android 4.2.1
测试内容:包括数学运算,集合操作(List和Map操作)等基本API
因为同为java语言,测试代码基本一致,详见TWaver Android Demo中的PerformanceDemo.java,这里只列出结果:
Android 4.2.1耗时是Java 6的12 - 50倍,此外其他语言(Flex,JavaScript)在电脑上的运行效率也大大优于Nexus 7平板。
另外看看HTML的情况,Chrome浏览器移动版与桌面版有四倍的差距,这基本上反映了硬件的真实水平,Android中JavaScript语言相比原生的Java性能更优,至少对于Chrome浏览器是如此,当然这个测试只是反映语言的基本性能,从开发的便易上看,Java还是最佳选择。
测试的结果表明相比PC,android设备在性能上尚有明显差距,而Dalvik VM尚不能充分发挥硬件的性能,在开发应用时需要意识到这点,以达到用户体验与功能上的平衡。
编程语言各平台下的性能差异
TWaver图形组件在桌面上有很多开发语言可选择,独移动平台上空缺,虽然TWaver Html5也能运行在Android和iOS之上,但要达到本地应用的体验绝非易事,TWaver Android定位于移动平台,用于图形化的数据展示,采用了全新设计架构,提升了UI效率,以应对移动设备自身性能的不足,全新的多点触控交互模式,漫游操作,实现流畅的交互体验。
相比TWaver其他版本,TWaver Android架构做了变化,数据模型上提高了数倍效率,解决了Link, Group的性能问题,UI呈现上优化了延迟无效机制,交互上完全适应触控操作,综合测试,对于Node,Link,Group混合使用的场景,一千数量级在Nexus 7平板上可以流畅的操作,考虑到平板硬件差异和Android虚拟机的效率问题,这样的结果还是让人满意的,可以有广泛的应用场景。
Nexus 7中,不同网元数量级下拓扑图的加载时间对比