java项目中很多地方使用线程池,线上服务器内存占用越来越大.每个线程占用8.8M.问题是哪儿?
针对你说的这种情况,可以使用jvisualvm.exe直接查看内存使用情况,查看是否是有大对象。
创新互联建站是一家专注于成都网站设计、网站建设与策划设计,信阳网站建设哪家好?创新互联建站做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:信阳等地区。信阳做网站价格咨询:13518219792
用java写的软件为什么在运行时候程序占用内存会越来越大
数据库连接没有关闭,代码不合理,循环过多,创造了太多的对象,java还真不占什么内存
java运行内存占用过大.怎么定位问题
java自带的jvisualVM,就有这个功能。
你可以做个内存的dump,然后用eclipse的mat插件,看一下。
如果还看不懂,就google一下,看看mat怎么用。
如果还不会,就得好好学学英文了。。。。
java内存溢出怎么解决?
第一对所有的代码包括页面中的java代码都进行一遍彻底的回顾检查,
1.对那些静态(static)的对象要特别留神,特别是类型为Map,List,Set的,静态的变量会一直驻存在内存中,生命周期比较长,不会被垃圾器回收。
2.对于代码,要审查是否生成了大量的冗余的对象,还有一些逻辑业务处理的类,
算法是否过于复杂,调整算法,对于代码认真审查,再仔细重构一遍代码,能提高代码质量,提高程序运行稳定性。
3.Java中的内存溢出大都是因为栈中的变量太多了。其实内存有的是。建议不用的尽量设成null以便回收,多用局部变量,少用成员变量。
1),变量所包含的对象体积较大,占用内存较多。
2),变量所包含的对象生命周期较长。
3),变量所包含的对象数据稳定。
4),该类的对象实例有对该变量所包含的对象的共享需求。
4.在我的程序中对静态变量的优化后,使程序占用内存量至少提升了5k-10k。所以也不容忽视。
第二还有就是String类相关的东西:
1.字符串累加的时候一定要用StringBuffer的append方法,不要使用+操作符连接两个字符串。差别很大。而且在循环或某些重复执行的动作中不要去创建String对象,因为String对象是要用StringBuffer对象来处理的,一个String对象应该是产生了 3个对象(大概是这样:))。
2.字符串length()方法来取得字符串长度的时候不要把length放到循环中,可以在循环外面对其取值。(包括vector的size方法)。特别是循环次数多的时候,尽量把length放到循环外面。
int size = xmlVector.size();
for (int i = 2; i size; i++) {
。。。
}
3 写代码的时候处理内存溢出
try{
//do sth
....
}catch (outofmemoryerror e){//可以用一个共通函数来执行.
system.out.print (“no memory! ”);
system.gc();
//do sth again
....
} 4.对于频繁申请内存和释放内存的操作,还是自己控制一下比较好,但是System.gc()的方法不一定适用,最好使用finallize强制执行或者写自己的finallize方法。 Java 中并不保证每次调用该方法就一定能够启动垃圾收集,它只不过会向JVM发出这样一个申请,到底是否真正执行垃圾收集,一切都是个未知数。
JAVA 怎样解决程序卡死, 内存爆满的问题?
如果你有360程序之类的 第一个方法就是使用新版的360安全卫士 找到左下角的类似彩色风扇的东西 鼠标到那边就会在那边弹出窗口 点“立即加速” 在点之前 先取消勾选 Java SE Binary 我不记得是什么。。
第二个方法是 整理系统的资源 等有了够多的RAM空间就设置较大限数 如果你电脑是2GB 那么可以1.5G 也就是1500MB
不行就换个好的电脑 或者尝试重启
没有360就使用系统自带的 Windows任务管理器 找到占用大的 (不能包括java.exe和Javaw.exe 点关闭进程会被迫关闭正在运行的Java进程 还有一个是svchost 系统功能 关闭就自启动 也就叫非法关机)由于时间关系 就这样了
当前题目:Java代码运行内存过大,java运行指定内存大小
URL地址:http://scyingshan.cn/article/heicgo.html