Runtime.getRuntime().gc()有副作用吗[重复]

问题描述 投票:0回答:3

在Java应用程序中,是否建议显式调用

Runtime.getRuntime().gc()
来提高性能?

以这种方式手动触发垃圾收集有哪些潜在的副作用,特别是它对运行时性能、延迟和整体应用程序效率的影响?

这种显式调用是否会在生产环境中导致任何意想不到的后果,或者是否存在这种方法被认为有利于性能优化的情况?

java performance coding-style garbage-collection runtime
3个回答
4
投票

Runtime.getRuntime().gc()
会引起副作用。

  1. Runtime.getRuntime().gc()
    - 不保证 gc 会运行

  2. Runtime.getRuntime().gc()
    - 根据文档的规定,这将提示 GC 它可以采取行动,如果 GC 决定已准备好运行,它可能会与应用程序处理线程重叠并导致延迟和缓慢。

建议不要使用此功能,而是尝试调整 GC 以使系统正常运行。


1
投票

即使你使用 Runtime.getRuntime().gc() 也不能保证内存会被释放


1
投票

每次使用

Runtime.getRuntime().gc()
时,你的程序可能会变慢。

© www.soinside.com 2019 - 2024. All rights reserved.