当前位置:首页 > 内存 > 正文

java程序启动后内存持续升高

  • 内存
  • 2024-08-23 22:54:57
  • 7826

一、请列出java编程中哪些行为导致内存长期增长如果内存长时间增加,那一定是内存溢出了。。。一般有以下几点
1.加载到内存中的数据量太大,例如一次从数据库中检索太多数据;
2.文件中有对对象的引用。集合类,使用后没有清除,因此JVM无法回收;
3代码中存在死循环或者循环生成了过多的double对象实体;
4第三处的BUG-使用的第三方软件;
5启动参数内存值设置过小;
你说的可能是2。
二、JAVA程序开始之后VIRT占用过高是什么原因造成的,怎么解决

从代码角度来看,软件开发人员主要关注emoryError:Javaheapspace异常,以减少不必要的对象创建,避免内存泄漏。

现在我们通过一个实际例子来分析一下如何排查内存使用问题。

通过top命令,我们发现PID为9004的Java进程占用了比较高的内存(24.7%)并且一直没有释放,导致出错。内存使用率高。

ps-mp9004-oTHREAD,tid,time,rss,size,%mem

我注意到PS命令可以检查a的CPU使用情况但是,不可能找到进程内特定线程的内存使用情况。