I ran a heap dump on my program. When I opened it in the memory analyzer tool, I found that the java.lang.ref.Finalizer for org.logicalcobwebs.proxool.ProxyStatement was taking up a lot of memory. Why is this so?

解决方案

Some classes implement the Object.finalize() method. Objects which override this method need to called by a background thread call finalizer, and they can't be cleaned up until this happens. If these tasks are short and you don't discard many of these it all works well. However if you are creating lots of these objects and/or their finalizers take a long time, the queue of objects to be finalized builds up. It is possible for this queue to use up all the memory.

The solution is

don't use finalize()d objects if you can (if you are writing the class for the object)

make finalize very short (if you have to use it)

don't discard such objects every time (try to re-use them)

The last option is likely to be best for you as you are using an existing library.

java lang r,内存泄漏?为什么java.lang.ref.Finalizer吃了这么多内存相关推荐

  1. ThreadLocal为什么会内存泄漏(java高级面试)

    一.案例代码 1.首先看一下代码,模拟了一个线程数为500的线程池,所有线程共享一个ThreadLocal变量,每一个线程执行的时候插入一个大的List集合: 2.设置JVM参数设置最大内存为256M ...

  2. 内存泄漏的原因及解决办法_浅谈 JS 内存泄漏问题

    什么是内存泄漏? 程序的运行需要内存.只要程序提出要求,操作系统或者运行时(runtime)就必须供给内存. 对于持续运行的服务进程(daemon),必须及时释放不再用到的内存.否则,内存占用越来越高 ...

  3. Java内存体系结构(模型),垃圾回收和内存泄漏

    Java内存架构(Java内存模型) 上面是堆的Java内存模型以及Java虚拟机(JVM)中运行的任何Java应用程序的PermGen. 还提供了比率,以使您更好地了解如何在每种世代类型之间分配允许 ...

  4. Java 内存泄漏监控检测与分析

    文章目录 1.获得转储文件 1.自动dump内存泄漏文件 2.手动dump Java的内存文件 2.MAT的使用 3.内存泄漏分析实战 1.获得转储文件 1.自动dump内存泄漏文件 在运行时加上参数 ...

  5. 使用Java创建内存泄漏

    我刚刚接受采访,并被要求使用Java造成内存泄漏 . 不用说,我对如何开始创建它一无所知. 一个例子是什么? #1楼 最近,我遇到了一种更细微的资源泄漏. 我们通过类加载器的getResourceAs ...

  6. Java开发者必须知道的内存泄漏问题

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 简介 Java的核心优势之一是在内置垃圾收集器(简 ...

  7. 了解Java中的内存泄漏

    来源:SpringForAll社区 1. 简介 Java的核心优势之一是在内置垃圾收集器(简称GC)的帮助下实现自动内存管理.GC隐含地负责分配和释放内存,因此能够处理大多数内存泄漏问题. 虽然GC有 ...

  8. java 内存泄漏_Java开发者必须知道的内存泄漏问题

    1. 简介 Java的核心优势之一是在内置垃圾收集器(简称GC)的帮助下实现自动内存管理.GC隐含地负责分配和释放内存,因此能够处理大多数内存泄漏问题. 虽然GC有效地处理了大部分内存,但它并不能成为 ...

  9. java避免内存泄露_Java防止非静态内部类内存泄漏

    内存泄漏 一个不会被使用的对象,因为另一个正在使用的对象持有该对象的引用,导致它不能正常被回收,而停留在堆内存中,从而导致内存泄漏. 最坏的情况下,由于大量的内存泄漏,最终导致jvm的内存耗尽,致使程 ...

最新文章

  1. java获取id值_从另一页获取ID值[重复]
  2. linux oracle 创建表空间2016,Linux下Oracle表空间及用户创建
  3. 二级联动菜单ajax刷新,jquery json ajax 二级联动菜单实例
  4. 机器学习的最佳学习路线,就在这里!
  5. IntelliJ IDEA for Mac在MacOS模式下的动态代码模板快捷键(Live Templates Shortcut)
  6. c语言常用英语单词大全下载,C语言实现英文单词助手
  7. Array 复制到ArrayList中
  8. Python--递归
  9. 在myeclipse上设置 SVN过滤上传的文件类型
  10. 备案 前置或专项审批的内容
  11. Ubuntu下载依赖包
  12. jieba / hanlp / ltp / standforCorenlp 分词器对比
  13. pcap头文件位置 Linux,pcap文件头的组织格式
  14. NRF51822的蓝牙设置
  15. WOJ1017-Billiard Ball
  16. python 图片验证码
  17. outlook答复_如何在Windows版Outlook中设置外出答复
  18. 二级分销商城系统开发软件
  19. 关于SQL语句的分类及DQL语句执行顺序
  20. 一键Pip下载安装使用YOLO系列目标检测算法,YOLOv7都能Pip ! ! !

热门文章

  1. 01.Android之基础组件问题 1
  2. 渗透测试——信息搜集
  3. html实现文本的查找与替换,在 InDesign 中查找并替换文本
  4. vue + 百度地图 +点位标注
  5. 教你如何做抖音视频广告,助你脱颖而出
  6. Regexper——正则表达式可视化工具
  7. 小米6刷Ubuntu Touch系统
  8. Python 3.0 抢“鲜”体验
  9. 计算机如何制作音乐相册,电脑电子相册制作软件 精美的音乐电子相册制作方法...
  10. thymeleaf th:value 多个值拼接 使用+号(不适用于th:field)