栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JNA / ByteBuffer无法释放并导致C堆内存不足

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JNA / ByteBuffer无法释放并导致C堆内存不足

我认为您已正确诊断:您永远不会用完Java堆,因此JVM不会进行垃圾回收,并且不会释放映射的缓冲区。手动运行GC时没有问题的事实似乎证实了这一点。您还可以打开详细的收集日志记录作为辅助确认。

所以,你可以做什么?好吧,我首先要尝试使用-
Xms命令行参数将初始JVM堆大小保持较小。如果您的程序不断在Java堆上分配少量内存,则可能会导致问题,因为它会更频繁地运行GC。

我还将使用 pmap
工具(或Windows上的任何等效工具)来检查虚拟内存映射。您可能会通过分配可变大小的缓冲区来碎片化C堆。如果真是这样,那么您会看到每张更大的虚拟地图,其中“
anon”块之间存在间隙。解决方案是分配大于所需大小的恒定大小的块。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号