草庐IT

memory-leaks

全部标签

java - 找到用死 Groovy 代码填充 PermGen 的代码

我们的glassfish实例每两周关闭一次,并出现java.lang.OutOfMemoryError:PermGenspace。我将PermGen空间增加到512MB,并使用jstat-gc开始转储内存使用情况。两周后,我得出了下图,显示了PermGen空间是如何稳步增长的(x轴上的单位是分钟,y轴上的单位是KB)。我尝试在谷歌上搜索某种可以查明错误的分析工具和一个关于SO提到的jmap的线程,事实证明它非常有用。在从jmap-permstats$PID转储的大约14000行中,大约有12500行包含groovy/lang/GroovyClassLoader$InnerLoader,

java - 工厂创建实例的 AutoCloseable "resource leak"警告?

我在Eclipse中针对AutoCloseable收到的这些“资源泄漏”警告似乎是救命稻草。但是,如何让它们为工厂创建的实例工作?例如(a有效,但b无效):publicstaticvoidmain(String[]args){//a)ThisemitsawarningnewAutoCloseable(){@Overridepublicvoidclose()throwsException{}};//b)Butthisdoesn't!newResource();}publicstaticAutoCloseablenewResource(){returnnewAutoCloseable(){

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.

java - HSQLDB SQL异常 : Out of memory establishing database connection

我们有一个带有本地HSQLDB数据库的桌面应用程序。一些客户报告他们的应用程序停止工作。当我尝试使用DbVisualizer打开它时,我可以在调试控制台上看到:12:45:32[DEBUGpool-2-thread-1D.?]RootConnection:jdbcDriver.connect("jdbc:hsqldb:C:\test\database.db",{user=**,password=})java.sql.SQLException:errorinscriptfileline:56outofmemoryatorg.hsqldb.jdbc.Util.sqlException(Un

java - 内存不足错误 : insufficient memory in IntelliJ?

当我在IntelliJ中以Debug模式运行我的项目时,出现以下错误。有人知道是什么原因吗?我已经在idea.vmoptions中增加了堆大小:-ea-server-Xms1g-Xmx3G-Xss16m-Xverify:none-XX:PermSize=512m-XX:MaxPermSize=1024m我已经将编译器的堆大小增加到1024,如下所示: 最佳答案 尝试Run菜单->EditConfigurations...->在左边的项目树中找到你的项目,寻找VMoptions:在右侧的面板中,根据此处找到的信息在那里输入内容:Wha

java - JVM 崩溃并出现错误 ='Cannot allocate memory' (errno=12)

我的代码因此错误消息而崩溃Executing"/usr/bin/javacom.utils.BotFilter"OpenJDK64-BitServerVMwarning:INFO:os::commit_memory(0x0000000357c80000,2712666112,0)failed;error='Cannotallocatememory'(errno=12)ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.Nativememoryallocation(malloc)failedtoallocate2

java - 解决 PermGen 问题的各种选择

我正在研究有关Java618VM上垃圾回收的各种选项,并希望得到一些指导。我们在JBoss上运行我们的应用程序,在重新部署期间偶尔会出现臭名昭著的PermGen错误。互联网上有很多关于解决或缓解此问题的最佳方法的相互矛盾和过时的信息。来自whatIcansee,以下是正确的:VM选项本身不会解决此问题,只能推迟它。解决此问题的唯一可靠方法是修复应用服务器本身(不太可能)或在应用服务器中运行的代码(我们的代码或第三方库)(更有可能)中的编码错误。Permgen的填充往往是应用程序类加载器加载的对象引用应用服务器类加载器加载的对象的结果,从而防止应用程序类加载器的垃圾回收。我有两个问题:以

Java 内存泄漏 - jmap 不显示类,但 jstat 显示

我解决了一个奇怪的内存泄漏问题。它特定于Java8,不会发生在7u79上。我无权访问Java代码。我确切地知道哪个用户操作导致了泄漏,我知道泄漏是关于类(而不是堆)的,并且使用+TraceClassLoading+TraceClassUnloading很容易发现有问题的类:[Loadedcom.mastercard.mcwallet.sdk.xml.allservices.ShoppingCartRequest$JaxbAccessorF_oAuthTokenfrom__JVM_DefineClass__][Loadedcom.mastercard.mcwallet.sdk....th

java - RabbitMQ QueueingConsumer 可能的内存泄漏

我有以下代码来声明一个队列:Connectionconnection=RabbitConnection.getConnection();Channelchannel=connection.createChannel();channel.queueDeclare(getQueueName(),false,false,false,null);consumer=newQueueingConsumer(channel);channel.basicConsume(getQueueName(),true,consumer);和以下获取下一个Delivery对象并处理它:Deliverydelive

java - 了解 Groovy/Grails 类加载器泄漏

昨天我将我的第一个Grails(2.3.6)应用程序部署到开发服务器并开始监控它。我刚刚得到一个自动监视器,指出CPU已固定在这台机器上,所以我通过SSH连接到它。我运行top并发现是我的Java应用程序的PID固定了服务器。我还注意到内存为40%。几秒钟后,CPU停止固定,下降到正常水平,内存又下降到大约20%的范围内。经典的主要GC。在收集时,我进行了堆转储。在GC之后,我在JVisualVM中打开转储,看到大部分内存分配给org.codehaus.groovy.runtime.metaclass.MetaMethodIndex.Entry类。总共有将近250,000个这样的实例,