java 进程 内存占用异常大

如图,实在找不出问题出在哪,求助
图片说明

图片说明

内存是逐步增加的还是一直很高。前者考虑是内存泄漏。
检查下你的程序有没有和原生代码的交互,比如说调用了浏览器、操作office、调用dll库等等,如果有,那么这些都可能造成内存泄漏,建议你把这些操作放在进程外,然后定时重启它们。
另外,检查下有没有使用lambda表达式、匿名函数等,这些也可能意外地延长变量的生命周期造成无法释放。
另外你的系统内存有多少,jvm有优化,在内存充足的时候不会激进地垃圾回收,表现出来就是内存大的机器,使用的内存比较多,这是正常的。

可以考虑一下,项目中是否使用了正则表达式。不规范的正则表达式有可能引起OOM问题

有可能是你在开发过程中,把Java的内置缓存设置的过于偏高,你把这个缓存关闭试试

Java程序运行过程中会出现缓存,导致运行内存不够的情况发生,我的解决办法是退出程序然后重启,即结束当前的进程。

干掉进程重启了解一下?

结束线程、重启idea 、 cpu 是4G 运行idea同时启动两个tomcat 就会cpu过高!

有可能是电脑问题,关机再试试

感觉是你的代码中有高消耗的地方,内存中占用过大,可以试着排查代码找到相应内存占用的地方进行,并且在相应的地方增加内存处理,将大数据量分开处理避免堆内存过多占用。

其实电脑在运行的时候,每次只能运行一个线程,但是电脑的处理速度很快,所以看起来就像是多线程同时运行,这个时候如果只去执行你自己写的线程,
那么电脑就不能干其他事情,因为他没有空余的资源,所以这个时候cpu的占用率就会特别高
解决办法:在线程中设置睡眠时间。

你可以用下java的visual工具查看下类的占用情况,那些模块占用多

看看有没特别占内存的逻辑