【发布时间】:2015-08-07 07:52:44
【问题描述】:
当我收到 OOM 错误时,我该如何决定是应该增加堆大小还是我的代码存在内存泄漏问题?
另外,我如何决定我的应用程序的初始堆大小?在我当前的应用程序中,我们从 512MB 开始,但现在增加到 4GB。但这是通过试错法完成的。有没有系统的方法来决定所需的堆大小?
如果我的问题听起来太基础,谁能分享一些可以帮助加深理解的参考资料?
【问题讨论】:
-
就是这样。使用 VisuamVM 进行分析以查看在何处使用了多少内存。在测试环境中以增加的负载运行它。配置文件、测试、配置文件等。
-
这是一篇好文章:toptal.com/java/hunting-memory-leaks-in-java使用堆转储检测哪个类有多个实例的部分可能导致哪个类泄漏:stackoverflow.com/questions/2511315/…
标签: java memory-management memory-leaks jvm profiler