分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

netty和jvm 虚拟机参数的 XX:+DisableExplicitGC 注意事项

发布时间:2023-09-06 01:35责任编辑:顾先生关键词:暂无标签

在使用netty时,经常出现内存溢出,经查询是这个坑:

netty 使用的nio 和 jvm 中的 XX:+DisableExplicitGC配置的冲突导致的,具体经过:nio 使用直接内存区域  Direct Memory内存回收和其他内存回收有点区别。Java堆内放置的是direct memory 引用,正常情况下当在young gc 的时候会把这个已死的引用回收,进而也回收了native memory 区域 , 但是有些移动到old gen区中的,在没有发生full gc时候这个对象一直没有被回收,然后direct memory 应该会累积。

另外当在为DirectByteBuffer分配空间过程中发现直接内存不足时会显式调用System.gc(),以期通过full GC来强迫已经无用的DirectByteBuffer对象释放掉它们关联的native memory , 这个可以从java.nio的源码中可以分析到(DirectByteBuffer .class Bits.class)

??

netty和jvm 虚拟机参数的 XX:+DisableExplicitGC 注意事项

原文地址:https://www.cnblogs.com/fypy/p/8252909.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved