目前实现Java实时规范(RTSJ)的JVM似乎只有少数几个。Sun/Oracle Java实时系统售价超过6000美元,IBM的实时WebSphere售价超过7000美元,因此许多Java开发人员可能永远没有机会使用它们。据称Oracle的JRockit是一种免费的实时Java实现,具有可预测、确定性行为,尽管我不确定,因为他们的文档非常重视营销语言。其他较小的实时JVM似乎存在风险,因为它们由小型组织开发,并且用户群较小。
哪些实时JVM是首选?哪些被开发人员最广泛使用、信任和喜爱?
哪些实时JVM是首选?哪些被开发人员最广泛使用、信任和喜爱?
更新(2012年3月):甲骨文公司似乎已经悄悄解散了他们的JavaRTS开发团队。
对于这个问题,没有一个好的答案。当然,没有足够的关键质量来说当前最流行的RT JVM是什么。
我知道的美国国防系统使用IBM的WebSphere RT和PERC,航空平台使用aicas JamaicaVM。迄今为止,这些人大多没有太关注许可费用,而是更关注更高的程序风险。我曾与许多这样的项目合作,我发现产品质量很高,并且供应商在某些时候提供了非常出色的支持。
确实,只有少数虚拟机实现了RTSJ。Oracle的JavaRT、IBM的实时WebSpere和aicas JamaicaVM,但Atego的PERC不是其中之一,甚至与之毫不相似。PERC具有一些专有的实时编程扩展。Oracle的JRocket也不是实时VM。
尽管PERC和JamaicaVM都来自比IBM或Oracle小的公司,但它们都拥有大量用户。大多数开发人员对PERC和JamaicaVM不太熟悉,因为它们主要用于嵌入式应用,而不是桌面或服务器应用。JamaicaVM被波音、西门子、蔡司和洛克希德马丁等大型企业使用,并已上市十多年。
如果您想尝试Java实时规范,则可以下载JamaicaVM个人版。它可在任何联网的Linux平台上使用。它可以从“http://www.aicas.com/jamaica-pe.html”免费下载。
JamaicaVM 不仅支持 RTSJ,而且具有完全抢占式垃圾回收器。这意味着可以编写实时代码,而无需使用作用域和不朽内存区域。 JamaicaVM 还具有静态或预编译器(AoT)编译器,因此实时性能不受 JIT 编译器的限制。仍然可以使用 RealtimeThreads、RawMemoryAccess、AsyncEventHandlers 和其他促进实时编程的 RTSJ 特性。