BlackTangerine
2018-07-04 14:00
采纳率: 50%
浏览 3.5k
已采纳

java 进程 内存占用异常大

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

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

11条回答 默认 最新

  • blownewbee 2018-07-04 15:39
    已采纳

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

    点赞 打赏 评论
  • ideaplusl 2018-07-05 01:01

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

    点赞 打赏 评论
  • qq_33535851 2018-07-05 01:18

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

    点赞 打赏 评论
  • qyl19901226 2018-07-05 01:26

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

    点赞 打赏 评论
  • S1mpleJavA 2018-07-05 01:27

    干掉进程重启了解一下?

    点赞 打赏 评论
  • qq_39615345 2018-07-05 01:39

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

    点赞 打赏 评论
  • qq_42568185 2018-07-05 02:58

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

    点赞 打赏 评论
  • jimmyjimmy 2018-07-05 03:11

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

    点赞 打赏 评论
  • 一只努力飞翔的鱼 2018-07-05 06:49

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

    点赞 打赏 评论
  • 乾坤瞬间 2018-07-05 09:50

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

    点赞 打赏 评论
  • bread003 2018-07-05 11:04

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

    点赞 打赏 评论

相关推荐 更多相似问题