2015-03-03 76 views
5

今天接受采访时,我遇到了一个棘手的问题。他们问我如何找到生产代码中的内存不足错误的根本原因。我开始谈论配置文件。面试官通过说明如何产生生产中的流量以从分析器中受益,将它拉向另一个方向。我没有线索。任何信息都会非常有帮助。生产代码中的内存泄漏检测

回答

3

廓线仪也不要追内存泄漏在生产中的最佳工具

  1. 廓线仪也不要在生产的JVM
  2. 通常不可能在开发中重建或测试中创建的内存泄漏的条件下运行生产(访问者提示)

的解决方案是采取堆转储(使用JMAP例如 - JVM依赖的),并使用等优异的(并且可以免费获得)SAP Memory Analyzer(MAT)的工具分析它

+1

注意:采取堆转储只会冻结应用程序服务器,有时应用程序可能会崩溃。假设你已经为生产中的jvm分配了12GB,则需要另一台具有12GB以上的机器来分析堆转储。您也可以使用jvisualvm进行分析。它作为JDK的一部分发货。 – 2016-12-13 06:50:01