生产代码中的内存泄漏检测

Memory Leak detection in production code

今天面试时我遇到了一个棘手的问题。他们问我如何找到生产代码中内存不足错误的根本原因。我开始谈论分析器。面试官通过说我如何生成生产中发生的流量以便从分析器中受益,将其拉向了不同的方向。我一点头绪也没有。任何信息都会很有帮助。

探查器不是追踪生产中内存泄漏的最佳工具

  1. 生产 JVM
  2. 上没有 运行 分析器
  3. 通常不可能在开发中重新创建或测试在生产中造成内存泄漏的条件(面试官提示)

解决方案是进行堆转储(例如使用 jmap - 依赖于 JVM)并使用类似优秀(且免费提供)的工具对其进行分析 SAP Memory Analyzer (MAT)