作者willieliao (Willie Liao)
看板java
标题Re: [问题] 请教在linux跑的java错误讯息
时间Sat Nov 24 15:57:56 2007
你的程式有memory leak,也就是说程式跑越久memory就越用越多,
而且garbage collection之後也不会下降,最後就是出现outofmemory exception
这种情况短期治标是加大memory(-Xmx多少m),长期治本当然是要看哪里有memory
leak,也就是物件越涨越大,reference的物件越来越多,而没有从memory中releas
e掉。虽然java 有garbage collection,但是有reference到的物件是不会被collect的
,你还是要在物件用完後把所有指向他的变数设成null。这种问题很tricky,我在公司
写测试系统的後台,一半的时间都是在抓这个(我们的客户都很大,跑一次测试都要
一两天,有memory leak一下就会被发现 .> <)
您没有贴出code,不过我猜大概是待处理queue越涨越大,您可能要设计一个机制定期或
当queue涨到一定大小的时候作清除或是储存到cache的动作(我门公司的产品是写到
file里面)。
※ 引述《leifjason (毕业版在哪里阿??)》之铭言:
: 我的linux是ubuntu 7.04 desktop版本
: 再执行一各接收封包的java程式时(大概6-7小时就当了)
: 出现了以下讯息
: Exception in thread 24"Thread-6" java.lang.OutOfMemory Error:java heap space
: 想请教这是啥意思..记忆体不够还是啥空间不够?
: 问题可能在code的啥地方呢.给的buffer不够大吗..还是传送与接收封包
: 的速度差太多..在queue就挂点了
: 请各位高手帮帮我感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 76.111.69.123
※ 编辑: willieliao 来自: 76.111.69.123 (11/24 15:59)
1F:推 dwi2:推一下这篇!我之前也有遇过这种问题 11/24 20:18
2F:推 slalala:不知道可否请您分享 让新手注意如何建少记体用量的技巧呢? 11/24 22:53
3F:→ slalala:因为我写的批次处理的程式 都还是会使记忆体用量偏大 11/24 22:55
4F:→ slalala:除非缩视窗才会释放些空间应该有些地方观念上写的不够严谨 11/24 22:56