巧用GC

原创 2004年02月11日 17:33:00

用过java的人都知道gc()方法吧(System.gc();)即使你没使用过,也该听说过吧它的用途吧。在j2sej2ee中也许你永远也不会用到它,不过在j2me则是另一回事了。很多人并不赞成直接调用它,我刚开始使用j2me时也没有考虑使用它,不过随着内存的消耗,我开始关注它了。几番周折,我发现gc方法的却很有用,不过也不要随便地使用它呀,否则后果自负。下面我就结合我在工作中遇到的问题谈谈gc的一些使用技巧(仅供参考)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.  在将要载入大量资源前调用gc()
原因:由于有大量的资源载入,可能会出现内存暂时不足,此时系统将自动调用垃圾回收器,如果资源过大(当然要小于系统的当前可用内存,包括还没有回收的内存)由于垃圾回收器可能还没有及时完成垃圾的回收的工作,而资源又要载入,就会造成可用内存无法满足资源的载入,因此会出现j2me程序停止响应或干脆报告内存不足。因此早期调用gc(),可以相对地避免这种情况的发生。

2.  不要连续使用gc()
原因:垃圾收集器本身就是一个耗资源的东东,连续的使用反而可能会消耗内存。

3.  以上两点只是直观的感觉,在实际操作中还要结合Runtime对象的帮助。
Runtime
对象中有几个比较有用的方法:
               long
freeMemory() 返回当前可用的内存数
               long
totalMemory() 返回系统得内存总量
如果你想在程序的一个地方加入gc(),但你不知道加在这个地方有没有效果可以使用以下方法:
               System.out.println(Runtime.getRuntime().freeMemory());
               System.gc();
               System.out.println(Runtime.getRuntime().freeMemory());
这样,你就可以看出值不值得把gc();放在这里了。^-^

也许还有很多使用gc的技巧,如果大家发现有更好的办法请不要忘了通知我呀。

巧用GC

用过java的人都知道gc()方法吧(System.gc();)即使你没使用过,也该听说过吧它的用途吧。在j2se或j2ee中也许你永远也不会用到它,不过在j2me则是另一回事了。很多人并不赞成直接调...
  • tiankexin
  • tiankexin
  • 2004年11月12日 20:36
  • 565

学习FlexViewer(二)——掌握Config文件

学习FlexViewer(二)——掌握Config文件 博客分类: FlexViewer      FlexViewer在运行加载ViewerContainer之后,会首先通...
  • zhang519767114
  • zhang519767114
  • 2014年10月19日 19:48
  • 588

css Hover的巧用

.bannertainer .banner_block:hover .b-cont2 p { }   当banner_blockhover时,显示他的b-cont2 p。这里要注意hover显示的只能...
  • hougelou
  • hougelou
  • 2017年04月24日 18:46
  • 152

Android中布局的巧妙设计【android进化二十六】

我学android以来,感觉控件都不可以重叠一起的,比如不可以在一个EditText中再放一个TextView,感觉控件都是有位置的,不可以重叠。但是这周看Android短信源码的时候发现控件其实是可...
  • wdaming1986
  • wdaming1986
  • 2011年09月25日 01:01
  • 9606

android一些工具巧用

作者:gzw1993 链接:http://www.zhihu.com/question/27140400/answer/91757401 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 其实...
  • u013835855
  • u013835855
  • 2016年07月18日 17:04
  • 353

巧用 DB2 递归 SQL

开始之前 递归 SQL 是在关系数据库中解析层次结构数据的非常有效手段。它可以用于高效地查询组织架构、零件表单、定单系统、网络结构等层次型数据。虽然递归 SQL 的语法较一般 SQL 要复杂一些...
  • lizhiguo18
  • lizhiguo18
  • 2017年11月22日 19:31
  • 350

好记性不如烂笔头 自己用到的一些东西记一下

一些自己用到的小知识function name(){ return "test" }
  • y18979041219
  • y18979041219
  • 2018年01月02日 15:29
  • 48

位运算符巧用

使用移位运算符计算一个数的2的次幂的倍数。n > 1 即等价于 n/2原理可参考十进制:n > 1 相当于结尾去掉一位,等价于 n/10。 注:对于右移,各二进位全部右移若干位,对无符号数,高位补0...
  • xiaoc024
  • xiaoc024
  • 2016年06月04日 15:32
  • 348

C/C++中部分位运算符的巧用

#include using std::cout; using std::cin; using std::endl; int main() { //利用
  • yingxiang720
  • yingxiang720
  • 2010年07月24日 00:04
  • 400

第14章 使用awk处理文本

1.     awk如何工作 awk和流编辑器sed在工作原理和用法上有很多类似之处,它们都是检查输入数据中的行是否匹配指定的模式,如果匹配成功就对匹配的行执行相应的操作,重复这个过程指导所有的输入数...
  • wer0735
  • wer0735
  • 2017年02月16日 23:25
  • 68
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:巧用GC
举报原因:
原因补充:

(最多只允许输入30个字)