0

在 JVM 的众多实现中,哪一个最适合实时应用,例如电信领域的应用?

我正在研究电信域的应用程序,并希望获得有关选择 JVM 的一些建议。

目前正在使用 HotSpot,但在某处阅读了有关 JRockit 和 Azul 的信息。

如果有人使用这些 JVM 中的一种并且在性能方面取得了一些重大改进,请分享。

4

1 回答 1

1

HostSpot JVM 是相当不错且具有成本效益的选择。它提供了很少的 GC 算法,特别是 Concurrent Mark Sweep 非常适合某些类型的实时应用程序。G1 是另一种低暂停 GC 算法,由 Oracle 积极推动,但到目前为止它的结果相当令人失望。

JRockit - 是死路一条。它从来没有很好的低暂停 GC 算法,它将被合并到 HotSpot。

Azul Zing - 与 HotSpot/JRockit 相比是另一个联盟。它确实可靠地保持 GC 暂停以毫秒为单位,但它需要更复杂的设置。它几乎没有部署选项(虚拟设备等),只要它适合您的基础架构,您就应该检查它。

一般注意事项

没有 JVM 可以保证您的 GC 暂停时间最少,它总是尽力而为。影响 GC 暂停持续时间的因素有很多,其中大多数是特定于应用程序的。

如果您正在寻求低于 5 毫秒的保证响应时间(不仅仅是 99.9...% 响应,而是 100%),您应该考虑避免使用 Java 堆内存的技术(即使用堆外内存或静态内存预分配)。

这里有几个链接,您可以在其中找到有关 GC 算法和低暂停调整的更多具体细节。

于 2012-12-02T11:50:27.750 回答