首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

理解 JVM 如何使用 Windows 和 Linux 上的本机内存(4)调试方法和技术建议

理解 JVM 如何使用 Windows 和 Linux 上的本机内存(4)调试方法和技术建议

下面是一些建议的调试步骤:
  • 提取测试案例。生成一个独立环境,您需要能够在该环境中再现本机内存泄漏。这将使调试更加简单。
  • 尽可能缩小测试案例。尝试禁用函数来确定是哪些代码路径导致了本机内存泄漏。如果您拥有自己的 JNI 库,可以尝试一次禁用一个来确定是哪个库导致了内存泄漏。
  • 缩小 Java 堆大小。Java 堆可能是进程的虚拟地址空间的最大使用者。通过减小 Java 堆,可以将更多空间提供给本机内存的其他使用者。
  • 关联本机进程大小。一旦您获得了本机内存随时间的使用情况,可以将其与应用程序工作负载和 GC 数据比较。如果泄漏程度与负载级别成正比,则意味着泄漏是由每个事务或操作路径上的某个实体引起的。如果当进行垃圾收集时,本机进程大小显著减小,这意味着您没遇到内存泄漏,您拥有的是具有本机支持的对象组合(比如直接 ByteBuffer)。通过缩小 Java 堆大小(从而迫使垃圾收集更频繁地发生),或者在一个对象缓存中管理对象(而不是依赖于垃圾收集器来清理对象),您可以减少本机支持对象持有的内存量。
如果您确定内存泄漏或增长来自于 Java 运行时本身,您可能需要联系运行时供应商来进一步调试。
佛山思海网络  十八年优质运营商
佛山联通G口大带宽常年优惠促销!
品质服务器托管、租用大特惠!
稳定流畅 24*7售后技术在线
欢迎咨询QQ:983054746
广东佛山电信千兆独享服务器租用低至16999/月!数量有限,赶快抢购 !-思海网络
返回列表