Java -verbose:gc对性能有什么影响?

5

想知道启用详细GC是否会影响应用程序的性能。

我的猜测是不会有太大影响。

我知道启用详细GC可能会输出大量数据,想知道这是否真的会对性能产生影响?


我们能否获得更多的上下文信息?您考虑在什么样的应用程序和环境中打开此选项?我建议不要在大型企业生产系统上仅仅为了好玩而打开它。 - Tom Duckering
2个回答

6

任何输出到文件/控制台的操作都会产生一些I/O开销。在每个垃圾回收事件中增加额外几毫秒的延迟肯定会对性能产生一定影响。

但实际上,只有当您的应用程序需要经历大量这样的事件并承受相当大的负载时,您才会注意到这种影响。没有测试很难确定。


2

以下是来自IBM的性能基准测试。两个测试均表明,针对其测试场景而言,冗长的垃圾回收机制的开销非常小:

当然,这些测试都是在IBM JVM上进行的,因此Hotspot的结果可能会有所不同。但正如IBM JVM一样,大多数写入日志的指标可能已经被计算出来用于优化原因,因此唯一的额外开销就是将已计算数据写入日志的操作。因此,正如WDS所说,除非您以极高的频率进行收集,否则这种开销开始对整体性能产生显著影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接