Java 10大优点—Part5—高性能虚拟机

就我而言,会议季已经过去了。我仍然会在半夜醒来为第二天的谈话做最后的准备,结果在进浴室的一刻突然意识到在可预见的将来没有任何演讲的计划了!好吧,回到码砖和写作,这里我们谈谈“Java 10大优点”系列的第五章。

友情提示,这里再次列举了我最喜欢的Java平台的10个理由。

这次我来谈一谈 “高性能虚拟机(JVM)”的细节。

是什么让Java虚拟机(JVM)牛气冲天?

这个问题很简单,对吧。大多数人都会告诉你Java和其它语言的区别就是它的跨平台特性。Java提供了write-one-run-anywhere(一次开发,到处运行)的特性,这个特性就是就是虚拟机提供的。虽然这个特性并非JVM独有,很多其它语言和平台也采用虚拟机技术。甚至Java都不是第一个采用虚拟机的编程语言,Smalltalk在Java发明前10年就用虚拟机了。

那么,到底是什么让Java虚拟机牛气冲天呢?简而言之,目前为止JVM仍然是虚拟机,而且是所有应用虚拟机中最完善的。它跨平台、开源、速度超快、提供字节码安全验证,既可以作为静态语言主机,也可以作为动态语言主机。它还提供自动内存管理以及运行时的可调整特性。

为什么这些特性对程序员很重要?

在我多用C++编程的那些年,我简直不敢相信在实体机上直接写软件是那么地复杂。我们不得不保证正确地测试并编译了所有目标架构,而且实实在在地实现软件实在是一件烦人的事。程序员们必须要精通不同版本的主流操作系统,并且保证自己的开发环境可以和这些操作系统共存。这使得编译工具这类基础事物的复杂性成倍增加。

想当初,CPython的开发过程就饱受Python虚拟机不成熟之苦。它远不如JVM优化,而且受限于糟糕的“Global Interpreter Lock”(全局解析器锁),此物使得并行非常难以控制。所以我们不得不经常地减少效率关键代码而使用原生代码,并且付出在非虚拟机开发的情况下才有的代价,虽然我们使用的是虚拟机。

Java虚拟机速度很快,在不要求实时运算操作时可以得到两方面的最佳功效。其实,绝大多数应用程序都不需要这种操作。因此,多亏有了如此的高效能,Java的开发者才能真正利用好基于虚拟机开发的种种好处。

Java虚拟机的未来如何?

如今,物联网正风行一时。我们看到大量不同的设备在市场上出现,每一种的更新速度都越来越快。

想知道每一个硬件架构的来龙去脉是几乎不可能的。但你肯定会想让你的应用程序运行在大多数设备上,利用互联特性来广泛地利用你的软件。因此,一个高效的虚拟机正变得比以前更重要。

在Java8中,Oracle推出了一个新版、针对小型设备(例如Raspberry PiBeagleBone等)设计的Java SE。

Java嵌入式开发曾经是在一个完全不同的平台——JavaME上进行的。你在Java的标准版或企业版上磨练出的开发技能几乎没有任何用武之地。而Java SE Embeded包含了所有Java8 的语言特性。JVM已经针对为每一种嵌入式平台进行裁剪并优化,API也是精心定义过的Java标准版API子集。通过“Three Profiles”(Java SE的一个子集),你总是可以精确地做出选择,最大程度降低内存占用。你可以继续使用桌面版和标准版Java开发中学到的知识和工具。Java Embedded Suite甚至为你提供了经过优化的应用程序服务器、服务层和数据库。因此,创建RESTful Web应用程序与其它设备交流变得非常容易。

嵌入式设备与物联网的乐趣

在ZeroTurnaround,我们致力于供优质的骇客集会,就像我们在Devoxx活动中做的那样!通过共同主办为期两天的研讨会,使用Yara 和 Vinicius Senger 组成的嵌入式设备面板,我们发现Java SE Embeded在大范围的设备上使用的可能性。在研讨会的最后,我本人让我们的彩虹图标复活,并且通过手势远程控制了它们。(通过手势控制了彩虹图标颜色的变化,这个彩虹图标是一个嵌入式Java 设备)。

无论你的兴趣和需求是什么都大可放心,从高吞吐率的web程序到通过Java SE Embedded设置Raspberry Pi而驱动的啤酒机,再到自动清洗猫咪器,JVM都能够胜任你的需求。

你有任何关于Java和物联网IoT的经验吗?你有什么有趣的项目愿意分享吗,请在下面留下评论或者tweet @gbevin@RebelLabs

原文链接: zeroturnaround 翻译: ImportNew.com - 汤米猫
译文链接: http://www.importnew.com/7889.html
[ 转载请保留原文出处、译者和译文链接。]



相关文章

发表评论

Comment form

(*) 表示必填项

还没有评论。

跳到底部
返回顶部