windows java.exe内存暴涨解决、idea跑java\ tomcat内存无限增长

在使用IDEA运行Tomcat服务时,遇到java.exe内存占用过高问题,通过调整IDEA配置、修改vmoptions文件及使用jvisualvm监控均未能解决问题。最终通过在控制台指定JVM内存限制`java -Xmx2048m -XX:MaxPermSize=1024m -version`成功控制内存增长。此外,还分享了如何排查线程卡死导致的内存持续增长问题,指出Thread.sleep()可能导致线程卡死。
摘要由CSDN通过智能技术生成

最近突然遇到个问题:用 idea 跑 Tomcat 服务,不到30分钟 内存就吃完了。用任务管理器查看,发现 java.exe占了10G内存!!

查了各种方法

一、 idea Tomcat 配置

在这里插入图片描述

没用!!!

二、idea idea64.exe.vmoptions

安装目录下的 bin 下的 idea64.exe.vmoptions 配置,还是 C:\Users\Administrator.IntelliJIdea2019.1\config 下的 idea64.exe.vmoptions 配置 改成如下

在这里插入图片描述

也没用!!

三、jvisualvm.exe 检查

然后打开 jdk/bin的 jvisualvm.exe 监控发现里面的 堆,栈等内存空间也是正常的

在这里插入图片描述

着实郁闷,感觉java线程的最大内存完全不由这些配置控制。

四、线程状态检查

后来根据这 篇文章做了排查,发现也不是程序引发的问题。

五、解决

最后是解决了,方法是

打开控制台,执行【 java -Xmx2048m -XX:MaxPermSize=1024m -version】

在这里插入图片描述

如此内存是控制住了。

【猜想】:如果没有给JVM 设置内存上限,他会一直跟操作系统申请内存。前面几步都没能设置到位,或者说设置不成功。

补充:java Thread卡死 项目内存一直增长

1.今天项目中出现了一个问题,虚

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Easylogging是一个简单易用的日志库,它可以帮助开发人员在程序运行过程中记录并追踪各种日志信息。它提供了许多便捷的方法,使开发人员能够根据实际需要对日志进行配置,并将其输出到不同的地方,如控制台、文件等。 多线程是一种在同一个进程中同时执行多个任务的方法。多线程可以提程序的并发性和效率,但也会带来一些问题。其中一个常见的问题是内存暴涨内存暴涨指的是程序在运行过程中占用内存空间急剧增加。多线程程序中,每个线程都有自己的栈空间,用于存储局部变量等数据。当多个线程同时执行时,可能会导致大量的栈帧被同时创建和销毁,从而占用大量的内存空间。此外,多线程程序还可能存在共享数据的问题,需要使用一些同步机制来保证数据的正确性,这也会增加内存的开销。 为了解决多线程程序中的内存暴涨问题,可以采取一些措施。首先,可以对线程进行优化,尽量减少线程的创建和销毁次数,减少栈空间占用。其次,可以优化共享数据的访问方式,使用一些效的同步机制,如读写锁、原子操作等,减少内存开销。此外,还可以使用一些内存管理工具来监测和调优程序的内存使用情况,及时发现和解决内存暴涨问题。 总结来说,Easylogging可以帮助我们方便地记录和追踪日志信息,多线程能够提程序的并发性和效率,但同时也会带来内存暴涨的问题。为了解决内存暴涨,我们可以采取一些优化措施,减少线程的创建和销毁次数,优化共享数据的访问方式,并使用内存管理工具监测和调优程序的内存使用情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值