草庐IT

java - 缓存 BufferedImage 时可能发生内存泄漏

我们有一个提供图像的应用程序,为了加快响应时间,我们将BufferedImage直接缓存在内存中。classProvider{@OverridepublicIDatarender(String...layers,Stringcoordinate){intrwidth=256,rheight=256;ArrayListresult=newArrayList();for(Stringlayer:layers){Stringlkey=layer+"-"+coordinate;BufferedImageimageData=cacher.get(lkey);if(imageData==null)

java - 分支或项目之间的 SonarQube 泄漏期

我目前正在将SonarQube引入到一个大型遗留项目中。这意味着已经有数百条警告,第一步我想确保没有新的警告来self们的功能分支。为实现这一点,我希望在每个功能分支上运行Sonar分析,将其与主分支进行比较,并在引入新警告时提醒提交者。假设以下情况:MyProject1.0-SNAPSHOT是SonarQube上项目的名称和版本。它有100个警告。它代表develop分支。泄漏期是1天前的分析。这非常有效,我可以看到自昨天以来引入了哪些新警告。开发人员正在开发feature/somefeature分支。当他们打开拉取请求时,我希望在该分支上运行Sonar分析。这工作正常,但我无法将l

java - Entitymanager 导致内存泄漏?

我的Java应用程序中存在缓慢的内存泄漏。我想知道这是否可能是由于在使用时不总是关闭Entitymanager造成的。但是使用myeclipse生成数据库代码,我得到这样的方法:publicMeitupdate(Meitentity){logger.info("updatingMeitinstance");try{Meitresult=getEntityManager().merge(entity);logger.info("updatesuccessful");returnresult;}catch(RuntimeExceptionre){logger.error("updatefa

Java String.split 内存泄漏?

我发现使用String.substring会导致与String.split相关的内存问题。使用String.split有内存泄漏吗?如果是,解决方法是什么?以下链接显示了Java中子字符串的正确用法。http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4513622还有一篇博客讨论了子串中可能的MLK。http://nflath.com/2009/07/the-dangers-of-stringsubstring/ 最佳答案 更新:行为在1.7.0_06中发生了变化:请参阅这篇文章:

java - Spring 或 hibernate 连接泄漏

我在web应用程序(hibernate-core-4.3.8.Final和spring3.2.11.RELEASE)上使用spring和hibernate。我正在使用hikaricp(v2.2.5)作为连接池实现,它检测连接泄漏并在下面打印堆栈跟踪。我正在使用spring的声明式事务划分,所以我假设资源的管理和清理是由spring/hibernate完成的。因此,我认为spring或hibernate是检测到的连接泄漏的原因。基本上,有一个计时器,当它被触发时,调用一个标有@Transactional注释的springbean。@TransactionalpublicclassInvo

java - 如何解决 swing 监听器内存泄漏?

背景所以我读到,Swing应用程序中的内存泄漏通常源于使用各种监听器(鼠标、键、焦点等)。本质上,因为您将一个对象注册为监听器而忘记注销该对象,通知程序最终会保留该对象的引用,并泄漏一些内存。我知道我们的应用程序不会注销监听器,并且对潜在的解决方案做了一些研究:我发现处理该问题的一种方法是使用Wea​​kReference,可以找到有关swing监听器方法的完整详细信息here.然后我开始好奇NetBeans是如何产生的表单编辑器正在生成代码以在将监听器添加到表单后进行清理,并发现NetBeans正在通过包装对象注册监听器,即argTypeComboBox.addItemListene

检测红宝石记忆泄漏

我使用Ruby2.3.3和Rails5.0.1。在我的应用程序中,每一个请求的内存都在增加,并且当请求完成后不减少。安装宝石:(gemfile.lock)GEMremote:https://rubygems.org/specs:actioncable(5.0.1)actionpack(=5.0.1)nio4r(~>1.2)websocket-driver(~>0.6.1)actionmailer(5.0.1)actionpack(=5.0.1)actionview(=5.0.1)activejob(=5.0.1)mail(~>2.5,>=2.5.4)rails-dom-testing(~>2.

java - Java 应用程序中已加载类的数量可能存在内存泄漏

我最近开始分析我使用VisualVM编写的osgijava应用程序。我注意到的一件事是,当应用程序开始向客户端发送数据(通过JMS)时,加载的类的数量开始以稳定的速度增加。但是,堆大小和PermGen大小保持不变。类的数量永远不会下降,即使在它停止发送数据之后也是如此。这是内存泄漏吗?我认为是的,因为加载的类必须存储在某个地方,但是即使我运行应用程序几个小时后堆和permgen也不会增加。要获取我的分析应用程序的屏幕截图,请转到here 最佳答案 Areyoudynamicallycreatingnewclassesonthefly

java - 如何确定 JNI 全局引用内存泄漏的原因?

我正在使用Tomcat,在停止我的Web应用程序后,仍然存在对我的Web应用程序的类加载器实例的引用。结果是大量内存(主要与静态数据相关)不会被释放。这迟早会导致OutOfMemoryError。我做了一个heapdump,然后我意识到它由一个JNIglobalreference持有防止类加载器将是garbagecollected.我的应用程序不使用JNI。我也没有使用ApacheTomcatNativeLibrary。我正在使用Sun/OracleJDK。我想追查这个全局引用的原因/来源。(我的猜测是JVM内部引用了类加载器-但为什么/在哪里?)。问题:有哪些方法/工具集可以实现这一

java - Log4j2 自定义 Hibernate Appender 的内存泄漏

我们将我们的应用程序从一个自己的小型日志记录组件转移到Log4j2。该应用程序在我们最大的安装中每天运行大约60.000个作业。我们编写自己的Appender,它使用Hibernate写入我们的数据库(请参阅InnovaIntegrationsportalHibernateAppender)。在大约36小时的运行时间后,JVM因内存不足异常/错误(OOME)而崩溃,分析hprof我看到类org.apache.logging.log4j.core的数量为763,5MB。appender.AbstractManager查看附件的分析截图(2019-04-1213_20_45-eclips.