重读MIDP和CLDC源码: 序

重看CLDC源码的原因是因为对J2ME中如何清理内存以便让垃圾回收器清理不甚了解。

 

上周为客户写的一个框架,在运行了四个小时之后死掉了。通过对模拟器及实际设备内存的监控,发现内存中垃圾回收器对一部分本该释放掉的内存无法回收,这部分越积越多,剩余内存越来越小,最后无内存可用。

找到问题很难,首先要定位的是:是内存问题还是平台的问题。在模拟器上运行数小时后,可用的内存在那狭小的空间变化,最后死机。说明了内存肯定是有问题的。合理的结果应该是垃圾清理后剩余内存和刚开始运行时差不多。

下一步是优化,按照我对Java虚拟机垃圾回收机制的理解,将对象间的联系断开,将不用的对象置为空;其结果是,原本漂亮的falconme框架变得丑陋,大大降低了可复用性。我需要一个可靠和复用性高的框架。

另一方面,看着模拟器上内存对象监控,对象数和占用内存数最多的就是char[]和String;作为Java中最常用的对象,String,我并不了解它的机制。

MIDP和CLDC本质上是一套稳定可靠的框架,它们的设计者当初必然要考虑垃圾回收的问题,通过阅读他们的代码,我可以重走前辈了走过的心路,优化我的框架。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
J2ME MIDP 2.0 无线设备编程的一些源码JAVA源码 J2ME MIDP 2.0 无线设备编程的一些源码,像是一本书中的实例,都比较简单,基础性东西,新手可能会喜欢,附有少量游戏代码,截图上有具体的内容。 J2ME MIDP 2.0 无线设备编程的一些源码 (3 folders, 2 files, 1.38 KB, 639.35 KB in total.)          apps (8 folders, 2 files, 1.38 KB, 620.90 KB in total.)             Chap4 (7 folders, 2 files, 1.38 KB, 27.33 KB in total.)                bin (0 folders, 6 files, 8.00 KB, 8.00 KB in total.)       Chap4.html 131 bytes       Chap4.jad 282 bytes       Chap4.jar 5.98 KB              MANIFEST.MF 234 bytes             classes (0 folders, 2 files, 1.38 KB, 1.38 KB in total.)                    lib (0 folders, 2 files, 1.38 KB, 1.38 KB in total.)                    res (0 folders, 2 files, 1.38 KB, 1.38 KB in total.)                    src (0 folders, 5 files, 11.02 KB, 11.02 KB in total.)       CmdDemo.java 2.92 KB       CmdDemo2.java 5.01 KB       HelloWorld.java 1.70 KB                    tmpclasses (0 folders, 2 files, 1.38 KB, 1.38 KB in total.)                   tmplib (0 folders, 2 files, 1.38 KB, 1.38 KB in total.)                     Chap5 (7 folders, 2 files, 1.38 KB, 58.02 KB in total.)                bin (0 folders, 8 files, 18.75 KB, 18.75 KB in total.)       Chap5.html 131 bytes       Chap5.jad 348 bytes       Chap5.jar 15.53 KB       e2p5068.ini 1.03 KB       java.log 51 bytes              MANIFEST.MF 299 bytes             classes (0 folders, 2 files, 1.38 KB, 1.38 KB in total.)                    lib (0 folders, 2 files, 1.38 KB, 1.38 KB in total.)                    res (1 folders, 2 files, 1.38 KB, 7.05 KB in total.)                  pic (0 folders, 4 files, 5.67 KB, 5.67 KB in total.)         logo.png 0.99 KB                  wyy_logo.png 3.30 KB               src (0 folders, 6 files, 25.29 KB, 25.29 KB in total.)       animateMID.java 4.86 KB       Chap5GraMID.java 14.09 KB       fullScreenMID.java 2.01 KB       keyHandleMID.java 2.94 KB                    tmpclasses (0 folders, 2 files, 1.38 KB, 1.38 KB in total.)                   tmplib (0 folders, 2 files, 1.38 KB, 1.38 KB in total.)                     Chap6 (7 folders, 2 files, 1.38 KB, 153.39 KB in total.)                bin (0 folders, 11 files, 62.12 KB, 62.12 KB in total.)       Chap6.jad 823 bytes       Chap6.jar 49.48 KB       e2p5068.ini 1.03 KB       e2p5078.ini 796 bytes       e2p5083.ini 3.20 KB       e2p5138.ini 4.26 KB       e2prom.ini 429 bytes       java.log 0 bytes              MANIFEST.MF 774 bytes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值