java 最喜欢哪种实时 (RTSJ) JVM?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4051966/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-30 04:34:36  来源:igfitidea点击:

Which real-time (RTSJ) JVM is most preferred?

javajvmreal-timertsj

提问by Matt

There seems to be only a handful of JVMs that are implementations of the Real-Time Specification for Java (RTSJ). The Sun/Oracle Java Real-Time System is over $6000 and IBM's real-time WebSphere is over $7000, so many Java developers may never have the opportunity to use either of them. Oracle's JRockit seems to be a free real-time Java implementation with predictable, deterministic behavior, although I am not sure, since their documentation is pretty heavy on marketing language. Other smaller real-time JVMs seem risky by virtue of being developed by small organizations and having smaller user-bases.

似乎只有少数 JVM 是Java 实时规范 (RTSJ) 的实现。Sun/Oracle Java Real-Time System 超过 6000 美元,IBM 的实时 WebSphere 超过 7000 美元,因此许多 Java 开发人员可能永远没有机会使用它们中的任何一个。Oracle 的 JRockit 似乎是一个免费的实时 Java 实现,具有可预测的、确定性的行为,尽管我不确定,因为他们的文档对营销语言非常重要。由于由小型组织开发且用户群较小,其他较小的实时 JVM 似乎存在风险。

Which real-time JVMs are preferred? Which are most used, trusted, and loved by developers?

哪些实时 JVM 是首选?哪些是开发人员最常用、最信任和最喜爱的?

回答by andersoj

Update (March 2012): Oracle appears to have quietly disassembled their JavaRTS development team.

更新(2012 年 3 月):Oracle 似乎已经悄悄地拆散了他们的 JavaRTS 开发团队。

There isn't a good answer to this question. There certainly isn't enough critical mass to say there's a current most-popular RT JVM.

这个问题没有很好的答案。肯定没有足够的临界质量来说明当前最流行的 RT JVM。

US Defense systems I'm aware of use JavaRTS, IBM's WebSphere RT, and PERC. Aviation platforms use aicas JamaicaVM. Most of those folks haven't been too concerned about licensing costs, to date. They are concerned by much higher program risks. I've worked with a number of these programs, and I find that the products are of high quality, and there is (at times extraordinary) support from the vendors.

我知道美国国防系统使用JavaRTS、IBM 的 WebSphere RT 和 PERC。航空平台使用 aicas JamaicaVM。迄今为止,大多数人还不太关心许可成本。他们担心更高的计划风险。我使用过许多这样的程序,我发现这些产品的质量很高,而且有(有时是非凡的)供应商的支持。

Many of the vendors have focused on specific clients or domains, and their designs and support infrastructure tend to fall in line with that. If you have a specific application profile in mind, maybe we can get you a better answer.

许多供应商都专注于特定的客户或领域,他们的设计和支持基础设施往往与此相符。如果您有特定的应用程序配置文件,也许我们可以为您提供更好的答案。

The high licensing costs you cite reflect the high expectations users of these products have, and the relatively low density of the demand. The developer community (such as it is) is also more fragmentary because systems with real-time or safety-critical constraints are typically of greater sensitivity (defense, aviation, SCADA) or protected proprietary value (automotive) or both. One excellent forum for real-time Java theory and practice is the annual JTRES conference, which is a close-knit group of academics and technically-savvy vendors.

您引用的高许可成本反映了用户对这些产品的高期望,以及相对较低的需求密度。开发人员社区(例如现在)也更加分散,因为具有实时或安全关键约束的系统通常具有更高的敏感性(国防、航空、SCADA)或受保护的专有价值(汽车)或两者兼而有之。实时 Java 理论和实践的一个极好的论坛是一年一度的JTRES 会议,这是一个由学者和精通技术的供应商组成的紧密团体。

Related on SO: Primitives-only in Java, who uses RTSJ.

与 SO 相关:Java 中的 Primitives-only他使用 RTSJ

回答by Dr. James J. Hunt

It is true, that there are only few virtual machines that implement the RTSJ. Oracle's JavaRT, IBM's real-time WebSpere, and aicas JamaicaVM, but PERC from Atego is not one of them, not even remotely. PERC has some proprietary extensions for realtime programming instead. Oracle's JRocket is also not a realtime VM.

确实,实现RTSJ 的虚拟机很少。Oracle 的 JavaRT、IBM 的实时 WebSpere 和 aicas JamaicaVM,但 Atego 的 PERC 不是其中之一,甚至不是远程的。PERC 有一些用于实时编程的专有扩展。Oracle 的 JRocket 也不是实时 VM。

Both PERC and JamaicaVM, although they are both from smaller companies than IBM or Oracle, have substantial user bases. Most developers are less familiar with PERC and JamaicaVM because they are used primarily for embedded applications, not desktop or server ones. JamaicaVM is being used by major corporations such as Boeing, Siemens, Zeiss, and Lockheed Martin and it has been on the market for over ten years.

PERC 和 JamaicaVM 虽然都来自比 IBM 或 Oracle 小的公司,但都拥有庞大的用户群。大多数开发人员不太熟悉 PERC 和 JamaicaVM,因为它们主要用于嵌入式应用程序,而不是桌面或服务器应用程序。JamaicaVM 正被波音、西门子、蔡司和洛克希德马丁等大公司使用,并且它已经上市十多年了。

If you would like to try out the Real-Time Specification for Java, then you can download the JamaicaVM Personal Addition. It can be used on any Linux platform that is on the network. It is available from "http://www.aicas.com/jamaica-pe.html" free of charge.

如果您想试用 Java 实时规范,那么您可以下载 JamaicaVM Personal Addition。它可以在网络上的任何 Linux 平台上使用。它可以从“ http://www.aicas.com/jamaica-pe.html”免费获得。

The JamaicaVM not only supports the RTSJ, but also it has a fully preemptive garbage collector. This means that one can write realtime code without having to resort to using scoped and immortal memory areas. JamaicaVM also has a static or ahead of time(AoT) compiler, so that realtime performance is not inhibited by a JIT compiler. One can still use RealtimeThreads, RawMemoryAccess, AsyncEventHandlers, and other features of the RTSJthat promote realtime programming.

JamaicaVM 不仅支持RTSJ,而且还具有完全抢占式垃圾收集器。这意味着人们可以编写实时代码而不必求助于使用作用域和不朽的内存区域。JamaicaVM 还具有静态或提前(AoT) 编译器,因此实时性能不会被 JIT 编译器抑制。一个仍然可以使用RealtimeThreadsRawMemoryAccessAsyncEventHandlers,在和其他功能RTSJ促进实时编程。

回答by Dr. James J. Hunt

If you would like to try using the RTSJ, JamaicaVM is offered in a noncommerical version free of charge. It is available for linux on x86. You can find a reference to this on aicas's web page: www.aicas.com.

如果您想尝试使用 RTSJ,可以免费提供非商业版本的 JamaicaVM。它可用于 x86 上的 linux。您可以在 aicas 的网页上找到对此的参考:www.aicas.com。

回答by Bass

Despite Azul Zingis not an RTSJ implementation (but rather a J2SE implementation), they claim this JVM is capable of running real-time applications due to the pauseless C4garbage collector.

尽管Azul Zing不是 RTSJ 实现(而是 J2SE 实现),但他们声称由于无暂停C4垃圾收集器,该 JVM 能够运行实时应用程序。

More on C4:

更多关于C4

回答by Deniz

Aonix has most used RTSJ implementation. They have a wide range of real-time java solutions from CDC to Java SE level.

Aonix 使用最多的 RTSJ 实现。他们拥有从 CDC 到 Java SE 级别的广泛的实时 Java 解决方案。