CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2ME

关于垃圾回收

楼主blackprogramming(black)2005-08-02 22:28:31 在 Java / J2ME 提问

我在做一个游戏时碰到这样的情况,我首先建立httpconnection连接然后回收内存,但是发现内存的使用量始终居高不下,最后查到是在释放内存时调用了多次垃圾回收所致,奇怪的是如果没有建立该http连接即使调用多次垃圾回收也没有这样占用过多内存的问题,不知是否是http连接和垃圾回收在某种程度上有冲突?请高人指点,谢谢! 问题点数:20、回复次数:7Top

1 楼homesos(熊猫贩子)回复于 2005-08-03 10:08:33 得分 3

垃圾回收并不是适时的,更不一定是及时的,特别是在内存使用的高峰期,这非常令人失望。  
  所以,确实需要清理内存时,可以手动调用System.gc()来处理。Top

2 楼homesos(熊猫贩子)回复于 2005-08-03 10:10:27 得分 2

当然,首先代码要进行优化处理。  
  然后适时地调用System.gc(),否则,结果会与所期望的相反。Top

3 楼blackprogramming(black)回复于 2005-08-03 10:58:31 得分 0

使用System.gc()但是没有明显的回收效果,我估计是程序中哪里有东西占用了内存,奇怪的是我去掉了所有的图片字符串等比较大的资源仅留下除了变量声明,几乎就是一个空壳但是内存占用量还是在一半以上,有没有什么办法可以查看内存中所存贮的都是哪些东西?  
   
  ===========  
  当然,首先代码要进行优化处理。  
  然后适时地调用System.gc(),否则,结果会与所期望的相反。  
   
  关于这点,能否举个例子说明如何优化,何时调用System.gc()效果会不好?谢谢!  
  Top

4 楼murphy008(菩提老祖)回复于 2005-08-03 11:16:11 得分 5

我现在用J2ME开发,虽然有的时候感觉gc()不错,但是完全指望它还是不行的,偶还是觉得手动清除比较好,所以偶一般都是initGame(),releaseGame().这样比较可靠的!  
  而且,gc()是单独的线程,多次重复的调用会起到相反的作用哦~~~Top

5 楼murphy008(菩提老祖)回复于 2005-08-03 11:16:59 得分 0

我现在用J2ME开发,虽然有的时候感觉gc()不错,但是完全指望它还是不行的,偶还是觉得手动清除比较好,所以偶一般都是initGame(),releaseGame().这样比较可靠的!  
  而且,gc()是单独的线程,多次重复的调用会起到相反的作用哦~~~Top

6 楼homesos(熊猫贩子)回复于 2005-08-03 11:16:59 得分 10

优化内存:  
  ◆处理图片大小 调整图片的存储选项 可以用工具进行压缩  
   
  ◆优化代码,  
  最大限度的重用对象,  
  及时置空不再需要的对象(如果不置空,在生成第二个对象之时,很可能会占用双份的空间),  
  在频繁生成销毁对象的过程中适当调用System.gc()以便及时释放资源(需进行测试找到最佳调用点),  
  在使用循环时,最好不要采用方法或是经过一系列计算后所得的结果为循环条件,否则,每经过一次循环,都将会调用一次该方法或是经过一系列计算。循环变量如果递增或递减的次数很频繁,最好能采用前置操作符  
  如果可以用数组替代对象,  
  字符串就不用说了吧  
   
  ◆用混淆器进行混淆以减少jar包的大小  
  Top

7 楼homesos(熊猫贩子)回复于 2005-08-03 11:17:18 得分 0

优化内存:  
  ◆处理图片大小 调整图片的存储选项 可以用工具进行压缩  
   
  ◆优化代码,  
  最大限度的重用对象,  
  及时置空不再需要的对象(如果不置空,在生成第二个对象之时,很可能会占用双份的空间),  
  在频繁生成销毁对象的过程中适当调用System.gc()以便及时释放资源(需进行测试找到最佳调用点),  
  在使用循环时,最好不要采用方法或是经过一系列计算后所得的结果为循环条件,否则,每经过一次循环,都将会调用一次该方法或是经过一系列计算。循环变量如果递增或递减的次数很频繁,最好能采用前置操作符  
  如果可以用数组替代对象,  
  字符串就不用说了吧  
   
  ◆用混淆器进行混淆以减少jar包的大小  
  Top

相关问题

  • 垃圾回收的問題
  • 垃圾回收问题
  • 垃圾回收问题
  • 关于垃圾回收
  • 垃圾回收的问题
  • 关于垃圾回收的问题
  • 急!垃圾回收的问题!
  • C#垃圾回收的问题
  • 关于垃圾回收的问题
  • 关于垃圾回收的问题

关键词

  • j2me
  • 内存
  • 循环
  • 垃圾
  • 优化
  • 代码
  • 连接
  • 调用
  • 垃圾回收
  • gc

得分解答快速导航

  • 帖主:blackprogramming
  • homesos
  • homesos
  • murphy008
  • homesos

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo