【发布时间】:2017-03-05 20:52:39
【问题描述】:
我正在开发一个用 java 编写的关键应用程序,它应该避免“停止世界垃圾收集”的影响。 我正在寻找一种可以预测由于完整 gc 导致的长时间停顿的解决方案。有可能吗?
【问题讨论】:
-
如果有时 GC 是可接受的,您可以随时尝试调用
System.gc()。当这个调用返回时,新的 GC 不太可能在不久的将来发生。 -
这个问题不是关于统计预测的,所以'prediction'标签可能放错了。
-
@Ole V.V.
gc()很容易不会发生或被禁用。 “不久的将来”是一个无定形的术语,新 GC 的可能性完全取决于 OP 系统的细节、它的运行时配置文件和它的错误,我们对此一无所知。所以我们还不能负责任地断言gc()会产生的影响。 -
对延迟敏感的应用程序的常用方法不是尝试预测暂停,而是测量并减少暂停。
-
@LewBloch 当然,可以禁用 GC,但是后来有人禁用了它。这在您自己的服务器上很容易避免。您可以对其进行测试,如果它有效,您可以依赖它。也就是说,变化在于有更好的解决方案。
标签: java performance garbage-collection prediction