阿熊
阿熊
元老
发贴: 5644
积分: 454
|
于 2013-01-03 23:27
Oracle发布了针对ARM处理器的Java 8开发者预览版。这个版本可以在JDK 8 (with JavaFX) for ARM预览版下载地址获得,它特别针对在Raspberry Pi设备上运行JavaFX做了剪裁。
尽管这还不是完全优化后的最终用户版本,但是它表现了Java 8当前在Oracle的商业ARM版本的状态。作为开发者预览版,它的许可禁止任何商业化使用,但是期望允许Raspberry Pi社区对其做出贡献。然而,Oracle当前没有计划把它们的ARM接口的任何部分开源,所以很让人怀疑的是,为什么开发者会为Oracle贡献测试时间和修复补丁。另一方面,这个预览版让开发者可以探索构建运行在Raspberry Pi和Java上的解决方案的选择。
想要安装这个版本,Raspberry Pi需要运行Raspbian Wheezy的最新版本,它会支持使用Raspberry Pi的浮点处理器。在下载并解压到所需的目标目录中后,程序就可以完整运行了。Oracle鼓励开发者试验运行JavaFX应用程序。
想要做到这一点,需要将下面的属性作为命令行参数传递进来。
-Djavafx.platform=eglfb 这个版本的版本信息如下:
pi@raspberrypi ~ $ /opt/jdk1.8.0/bin/java -version java version "1.8.0-ea" Java(TM) SE Runtime Environment (build 1.8.0-ea-b36e) Java HotSpot(TM) Client VM (build 25.0-b04, mixed mode)
正如这里所清晰声明的,包默认是“HotSpot客户端虚拟机”。强制使其成为“服务器”会导致以下错误:
pi@raspberrypi ~ $ /opt/jdk1.8.0/bin/java -server -version Error occurred during initialization of VM Server VM is only supported on ARMv7+ VFP
开发者预览版中一个值得注意的缺陷是,Java只能使用Linux所检测到的第一个鼠标和键盘。在Raspberry Pi论坛中相应的帖子中已经得到Java架构师Daniel Blaukopf的确认,这个问题会在下一个版本中修复。
有些人已经对于Java在Raspberry Pi上的表现做了评测。一次简单的主要评测显示HotSpot要比本地代码快,所以我们使用Linpack Benchmark做了自己的测试,它特别是针对浮点运算的。显然,它显示出来Raspberry Pi的速度和一般的最终用户或者服务器的硬件没有什么可比性。
在i7 920上LinPack Java Benchmark得到的结果是:
Mflop/s: 639.949 Time: 0.13 secs (0.131 sec) Norm Res: 5.68 Precision: 2.220446049250313E-16
而在Raspberry Pi上得到的是:
Mflop/s: 16.461 Time: 5.09 secs (5.093 sec) Norm Res: 5.68 Precision: 2.220446049250313E-16 为了比较HotSpot和本地代码,以下是同样评测的C语言版本(像ELinux Pi Performance Wiki描述的那样编译)的结果:
Reps Time DGEFA DGESL OVERHEAD KFLOPS ---------------------------------------------------- 1 0.81 97.53% 0.00% 2.47% 26687.764 但是Raspberry Pi的性能并不是它流行的主要原因。正如Holly Cummins在Devoxx 2012 的简短发言中演示的,她在帽子中运行了一台应用程序服务器,它的目标是在很小型的标准计算及硬件上运行范围广泛的应用程序。对于Java on Raspberry Pi非常有用的附件是Pi4J项目,它为访问GPIO针脚提供了Java程序库。
|