我正在使用自动生成的Java类来执行特殊方法.因此,我必须通过反射调用方法.

此执行由Swing Thread触发,因为该方法(从“unknown”类调用)正在更新UI元素.每次执行新线程都会通过调用在类中搜索一个Method

Class {

...

public Method[] getMethods() throws SecurityException

...

}

getMethods的逻辑缓存了元素,但我不知道为什么.一个Profiler告诉我,Method obejcts正在浮动内存.

我可以通过设置系统属性“sun.reflect.noCaches”来禁用Java的方法缓存,但是在我更改了这些属性后,我的应用程序变得非常缓慢.

题:

在尝试从类中获取方法之前,我可以实现自己的缓存算法.但我工作的项目非常大,我们有多个反射调用.

什么可以解决这些问题?

哪些情况会触发这些内存泄漏(错误的类加载器,……)?

该项目使用Java 1.5在Linux下运行

解决方法:

>首先,它使用的缓存是SoftReference,因此缓存的方法将在OOME发生之前被删除.

>如果您仍想删除它,只需在每次调用getMethods(..)之后调用clearCachesOnClassRedefinition()方法;你必须使用反射,因为方法是私有的.

标签:java,memory-leaks,reflection,class

来源: https://codeday.me/bug/20190626/1295457.html

java缓存内存泄漏_java – getMethod是缓存并导致内存泄漏相关推荐

  1. Java内存泄露系列--内部类持有外部类导致内存泄露--原因/解决方案

    原文网址:Java内存泄露系列--内部类持有外部类导致内存泄露--原因/解决方案_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java内部类持有外部类导致内存泄露的原因以及其解决方案. 为什么内部 ...

  2. java 内存情况_Java代码中获取运行时内存情况

    在此之前,还是先看下JVM内存结构和JVM参数调优,网上太多不说也罢. 另外提醒的是方法反映的都是java这个进程的内存情况,跟操作系统的内存根本没有关系. public class Test { p ...

  3. java 内存分布_java的各类型数据在内存中分配情况详解_

    1. 有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构.说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出,此说法不虚,但掌握Jav ...

  4. java xml内存泄漏_java - iText HTML到PDF的内存泄漏 - 堆栈内存溢出

    对于Maven项目:将以下依赖项添加到项目的pom.xml文件中: org.apache.poi poi-ooxml 3.14 com.itextpdf itextpdf 5.5.8 com.itex ...

  5. java用redis缓存的步骤_Java 使用Redis缓存工具的图文详细方法

    开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java. (1)Java的安装配置可以参考我们的 Java ...

  6. java加载阶段内存分配_Java核心:类加载和JVM内存的分配

    类的加载: 指的是将class文件的二进制数据读入到运行时数据区(JVM在内存中划分的) 中,并在方法区内创建一个class对象. 类加载器: 负责加载编译后的class文件(字节码文件)到JVM(J ...

  7. java内存图片_Java程序缩放图片时,内存占用令我百思不得其解

    源代码如下,是一个很简单的程序.importjava.awt.FlowLayout;importjava.awt.Image;importjava.io.File;importjava.io.IOEx ...

  8. java 将数据加载到内存中_java 将数据加载到内存中的操作

    将数据加载到内存中 1.建立InitListener.java package app.util; import java.util.HashMap; import java.util.Map; im ...

  9. java if在内存中_java如何将对象暂存到内存中?

    展开全部 form表单提交文件,建议用62616964757a686964616fe59b9ee7ad9431333264623862smartupload上传,暂存在web服务器目录下,然后稍微一下 ...

最新文章

  1. word导入中的一个乱码
  2. 泰安虚拟服务器怎么样,一山二虎 泰安双路GT24服务器对比评测
  3. MySQL优化group by和distinct
  4. [给 ASP.NET初学者的话]挑书与买书,买适合自己的书
  5. C语言字符像素,返回字符串宽度 (以像素为单位)
  6. Leaflet文档阅读笔记-Leaflet on Mobile笔记
  7. 夺命雷公狗---linux NO:26 linux下的用户和用户组的管理
  8. pytorch 计算topk_pytorch -- topk()
  9. 装机——2021年底装机推荐,附9000元DIY介绍
  10. 2016.11.16回顾
  11. git deamon 一个简单的git服务器
  12. dmz和端口映射_无线路由大讲堂:端口映射触发与DMZ主机
  13. oracle diagnosticdest,Oracle 11g自动诊断信息库(Automatic Diagnostic Repository,ADR)概述
  14. python word.documents.open报错_Python教程:[43]Word基本操作
  15. 人工智能的主要研究方向都有哪些
  16. Excel应用技巧:合并单元格的排序
  17. 源程序、目标程序、汇编程序、编译程序、解释程序
  18. 医学研究中的偏倚及其控制
  19. 蚂蚁金服阳振坤:用10年时间打造一个“顶天立地”的产品
  20. 【C++】哈希——unordered系列容器|哈希冲突|闭散列|开散列

热门文章

  1. git 添加公钥的命令
  2. listview-android:打造万能通用适配器(转)
  3. 判断手机是否支持闪光灯的
  4. java日期格式化、解析
  5. Google 的论坛
  6. redis使用lua脚本
  7. 《出发吧一起》第二阶段个人总结——Day01
  8. java总结第四次//常用类
  9. UVa 202 Repeating Decimals
  10. 构建和实现单点登录解决方案