1、产生原因申请的ByteBuf没release

// 申请分配ByteBuf
ByteBuf buffer = ctx.alloc().buffer();
// 释放buf方式1
buffer.release();
// 释放buf方式2
ReferenceCountUtil.release(buffer);
  • 堆外:未free
  • 堆内:未归还

最终导致OOM

netty检测内存泄漏的核心:引用计数器(buffer.refCnt())+弱引用DefaultResourceLeak(WeakReference)

ResourceLeakDetector(内存泄露检测工具类)

new ByteBuf时会调用此方法

1.1、内存泄露检测工具检测

  • 设置启动参数:-Dio.netty.leakDetection.level=PARANOID
  • 前置条件
    • 默认级别SIMPLE,不是每次都检查
    • GC后,才有可能检测到
    • 注意日志级别,必须开启error
    • 上线前最高级别,上线后用默认

netty内存泄露检测相关推荐

  1. Netty源码解析-Netty内存泄露检测

    前言: 在前一篇文章中,我们介绍了ByteBuf的引用计数器的使用,基本所有的ByteBuf都有相关计数的功能,那么这个计数有什么用呢. 实际主要就是做内存泄露检测用的.本文就其如何做检测来进行说明. ...

  2. Ubuntu下内存泄露检测工具Valgrind的使用

    在VS中可以用VLD检测是否有内存泄露,可以参考http://blog.csdn.net/fengbingchun/article/details/44195959,下面介绍下Ubuntu中内存泄露检 ...

  3. android native堆内存泄露,Android Native内存泄露检测

    Android Studio没有提供直接的Native层的内存泄露检测工具,但我们仍可以通过开源工具进行动态检测和静态检测 动态检测 在APP运行时进行检测,就像LeakCanary Update: ...

  4. Android NDK 内存泄露检测

    前言 最近写C++代码,老是担心代码存在内存泄露,胆战心惊的,Andorid中Java层代码内存泄露可以借助leakcanary进行检测:找了一番,找到了PC上C++上的内存泄露检测库LeakTrac ...

  5. memwatch内存泄露检测工具

    工具介绍 官网 http://www.linkdata.se/sourcecode/memwatch/ 其功能如下官网介绍,挑选重点整理: 1. 号称功能: 内存泄露检测 (检测未释放内存, 即 动态 ...

  6. DevPartner Studio Professional Edition 11 内存泄露检测使用

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! DevP ...

  7. UE3 MemLeakCheck Tracking(内存泄露检测追踪)

    MemLeakCheck Tracking(内存泄露检测追踪) 概述 运行 MemLeakCheck MemLeakCheck MemLeakCheck -fast Release vs. Test ...

  8. 转载浅谈MFC内存泄露检测及内存越界访问保护机制

    2019独角兽企业重金招聘Python工程师标准>>> 本文所有代码均在VC2008下编译.调试.如果您使用的编译器不同,结果可能会有差别,但本文讲述的原理对于大部分编译器应该是相似 ...

  9. 精准 iOS 内存泄露检测工具

    MLeaksFinder:精准 iOS 内存泄露检测工具 发表于 2016-02-22   |   zepo   |   23 Comments 背景 平常我们都会用 Instrument 的 Lea ...

最新文章

  1. csv文件与字典,列表等之间的转换小结【Python】
  2. 通俗易懂的Redis数据结构基础教程
  3. bootloader详解(转载)
  4. 实验四 查找和排序算法实现
  5. oracle易忘函数用法(2)
  6. oracle optimizer_features_enable,Oracle Optimizer:迁移到使用基于成本的优化器—–系列2.1-数据库专栏,ORACLE...
  7. 失败,因为你其实太过傲慢
  8. python库的安装方法_Python库的安装方法
  9. Redis学习笔记三:Redis的数据类型
  10. 【叨、校长】一个基于Extjs、Pushlet美轮美奂的Web聊天室
  11. 2022年信息安全工程师上午真题及答案解析
  12. 单相无感正弦驱动方案
  13. HTG评论Yoga Tablet 2 Pro:内置Pico投影仪可延长电池寿命
  14. Python实现求矩阵的伴随矩阵
  15. Quartz配置上次任务没有执行完,下次任务推迟执行
  16. Linux DRM(二) --Xorg/DRM
  17. 【机器学习】初学理论知识
  18. -bash:/etc/profile: line 21: syntax error near unexpected token `$‘do\r‘‘
  19. 动态规划解决贴纸拼字游戏
  20. 01背包问题,多重背包问题-分组背包问题-完全背包问题-总结-内含4种经典背包问题

热门文章

  1. 6.18科技新闻(2)
  2. 加州大学伯克利分校是如何培养计算机学生的
  3. 伯克利分校研究生计算机排名及申请,加州大学伯克利分校研究生计算机专业排名及申请要求一览...
  4. java double 乘以100,将double乘以100,然后转换为long表示错误的值
  5. XSS-labs(1-10)闯关详解
  6. 如何控制滚轮横向滑动(原生JS实现方法)
  7. 乐鑫科技,活跃在国际舞台上的中国芯
  8. CDR插件开发之CPG插件002 - CPG插件开发环境准备和搭建
  9. python 读取pkl_如何打开.pkl的文件
  10. 谈谈对MVVM的理解?