内存溢出,求高手帮忙!

xhm0616 2012-09-07 02:18:21
我用awt写了一个号码处理工具,运行时处理号码量大,报内存溢出,我想问下怎么修改jvm的内存!我知道在环境变量可修改内存的大小,但是这种方法治标不治本,如果将这个号码工具,在别的电脑上运行也会报内存溢出,我想问下有什么方法可以解决这个问题啊!
...全文
151 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
码道功臣 2012-09-07
  • 打赏
  • 举报
回复
运行时处理号码量大。
也许GC无法回收在使用的对象,你得好好分析下产生的对象数量,大概估算下内存消耗,然后设计一个合理的数据结构,牺牲下时间换点空间!
Alexander 2012-09-07
  • 打赏
  • 举报
回复
java.lang.System.gc()
可以申请垃圾回收机进行垃圾回收。在可能会出现大量闲置对象时(例如在某个会产生大量局部对象的循环结束后)申请回收可以有效的提高内存的使用效率。

要注意的是:与C#中的申请回收GC.Collect()不同,System.gc()并不是强制进行垃圾回收,仅是向回收机提出回收申请,回收机一般不会马上进行回收。因此优化代码才是最根本的解决之道。
renolit 2012-09-07
  • 打赏
  • 举报
回复
哥,要释放嘛
zxhcloth 2012-09-07
  • 打赏
  • 举报
回复
不要设置环境变量
直接java -Xms128m -Xmx1024m 运行入口,将这个放到一个批处理文件(bat)里就可以了

出现内存溢出最好是优化下你的代码,让它使用完能够释放资源,而不是一味的装载,不然给你10个G的内存也不够你用。
Eclipse_80 2012-09-07
  • 打赏
  • 举报
回复
你每处理完一组号码就把当前的内存释放一次,不然就会创建过多的对象,回收机制又来不及回收,早晚会溢出的!
Yhzhtk 2012-09-07
  • 打赏
  • 举报
回复
-Xms64m -Xmx800m
运行java时设置参数最小内存64m,最大内存800m。
gloomyfish 2012-09-07
  • 打赏
  • 举报
回复
优化你的代码!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧