游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4445|回复: 5

随便谈谈j2me手机game内存 

[复制链接]

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-1-20 14:50:00 | 显示全部楼层 |阅读模式
你可能想,为什么要谈内存,我们可爱的java不是有gc机制吗?可惜我们现在不是在pc上,而是只有64k内存的手机.如果不多加小心谨慎的话,我们的gc很可能每十秒钟运行一次呢.
你会不会毫不犹豫地写下这样的代码:
1.
g.drawString(“score=”+score,50,50,Graphics.TOP|Graphics.LEFT) ?
或是
2.
for (Enumeration e = v.elements() ; e.hasMoreElements() ;) {
System.out.println(e.nextElement());
}
1有什么问题?其实它做了下面的事
String scoreStr=“score=”+score;
g.drawString(scoreStr,50,50,Graphics.TOP|Graphics.LEFT);
明白了吗?在你的j2me游戏里,这行程序很可能在paint()里面出现并且每0.1秒运行一次吧.伴随着时间的推移,成堆的String被创建出来,要不了多久,我们可爱的gc妈妈就要出来给我们擦屁股咯
想到了就简单了,根据我们midlet的实际情况,让我们灵活地建立解决de方法.
2差不多也发生了同样的事情,注意到interface Enumeration只有两个method:
boolean hasMoreElement();
Object nextElement();
发现了什么?Enumeration不像STL的iterator,没法让一个原有的Enumeration从头开始,每遍历一次我们的Vector或Hashtable,我们就得问我们的容器要一个新的Enumeration.
常见的情况是:碰撞检测.我们不得不在每一个frame里对容器做遍历,其结果就是生出以集装箱为单位的大把Enumeration:)
使用Enumeration很酷,不过为了内存,我们还是老土一点:
for (int loop ; loop<vector.size() ;loop++) {
System.out.println(vector.elementAt(loop));
}
最后,只要善用wtk的Monitor,就能及时地发现我们MIDlet中的内存杀手,将lag消饵于无形之中.
enjoy!

作者:wingser
授权:可任意修改转贴,请保留原作者名

0

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2005-1-20 18:10:00 | 显示全部楼层

如果不行,就拿石头仍我。。。。

http://www.bnb88.com?url=kuaidao110
大家都来看我的网址吧~想看好的免费电影只有这一个了~
其他我都试过了~都是垃圾!骗人的!注册了也看不了~
我这个网址我都注册了,还帮朋友注册了一个~不能看就扁我哦~
来试试吧~一定行的!

4

主题

11

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2005-1-29 11:37:00 | 显示全部楼层

Re:随便谈谈j2me手机game内存 

老兄为你悲哀啊  这么好的帖子竟然2楼跟了个这样的回复!! 呵呵 为你挽回点面子

40

主题

89

帖子

95

积分

注册会员

Rank: 2

积分
95
发表于 2005-3-23 19:39:00 | 显示全部楼层

Re:随便谈谈j2me手机game内存 

2楼是干什么的啊~~!推销员~~?

6

主题

382

帖子

384

积分

中级会员

Rank: 3Rank: 3

积分
384
发表于 2005-3-30 13:11:00 | 显示全部楼层

Re:随便谈谈j2me手机game内存 

不了解

1

主题

130

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2005-4-4 19:25:00 | 显示全部楼层

Re:随便谈谈j2me手机game内存 

明白了,老土的写法才是没有错的,我不追求个性了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 03:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表