a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 140|回复: 0

[专业语言] JAVA认证:J2ME游戏开发的高级优化技巧(4)

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
 void fillRect(Graphics g) {   g.fillRect(100, 0, 100, 100);5 v- {9 V' U0 A, ]
  }- J1 L( Y8 y9 o; f
  void drawImage(Graphics g) {
( V: r7 @5 ^4 |! k5 ~6 [1 {  g.drawImage(GE.m_images[GRes.PNG_MAP], 0, 100, GE.TOPLEFT);( p% ~$ e" K' m! R
  }
- a% B- U) ~8 y+ b  void drawRegion(Graphics g) {
+ _1 H/ o" Q0 M- l4 y+ S  g.drawRegion(GE.m_images[GRes.PNG_MAP], 0, 0, 100, 100, Sprite.TRANS_MIRROR,100, 100, GE.TOPLEFT);
8 Z- [  K& l/ W- P4 m8 ~# o  Z  }$ m3 a7 N+ {) S1 O* P
  该程序各函数分别绘制100*100的图形,经过一段时间以后,退出应用程序# {" e; X& u5 V, f( Y
  根据Profiler窗口所显示的数据,我们发现drawString最耗时。其次是drawRegion,所以我们应尽量避免使用drawString函数。6 X9 S9 w- C4 Y6 S1 b% h0 }( M
  通过Profiler对各种函数及程序的测试,我总结如下结论:
$ b; k$ i. B, j& f5 q8 p: Q* Y  ◆仅当你需要的时候才去优化代码!
. h$ f4 W1 {9 {8 t, ~  ◆仅优化那些最耗时的代码!0 a( Z% @8 w5 j/ n- s  l" S  p
  ◆使用Profiler去查找哪里需要优化!+ `4 I7 k" W. x8 T! p6 y
  ◆记住Profiler不代表真机上的优化结果,使用System Timer来在真机上做最后的测试!+ M* c5 u6 G3 W; v, o
  ◆在做低级优化之前,总是要先思考算法是否是最优!
" f2 U8 v1 C! k& c  ◆绘图是很占用时间的,所以尽可能的减少Graphics函数的调用!- i* E8 c) a7 y; K$ Z
  ◆尽可能的使用SetClip()来减少绘图区域,相对于SetClip(),drawImage()所花的时间会更可观!
2 E& W- ^% |; O3 M6 u  ◆尽可能的将变量定义在循环以外!: x$ f2 ~; b5 r9 C1 E1 F
  ◆尽最大可能的进行对需要的数据进行预先计算并将结果保存在缓冲里!
- I% j% n8 p/ d/ D0 V7 j0 |  ◆String类很容易产生垃圾内存,尽可能的使用StringBuffer代替String或用final static来定义之!: o% h; N  D9 f9 P
  ◆假设是不被接受的,一切要以真机为据!" G  a# d% V6 B+ A( d) M
  ◆尽量使用static final修饰函数,而避免synchronized修饰符!
8 k. {5 t8 B# z$ }* T! ~- N" k, r  ◆对于频繁调用的函数要使用尽可能少的参数!
/ [) Y& P' e. J: `8 n  `: [  ◆尽可能的不使用函数调用!3 T2 n. n, |; }, g
  ◆尽可能的使用来代替*和/!
; [, A# o) H7 f6 H  ◆使用位操作来代替%运算!, `" o9 R, Z+ o
  ◆与0比较比与其他数值比较快!
! N) [5 Y0 ]1 l; t8 o$ I  ◆数组存取比C语言慢,尽可能不在循环中存取数组!# z8 w7 W, g; C# g5 _. v
  ◆局部变量比其他类型的变量运算要快!
9 G, i: ^& s* }" w7 c7 G$ y+ P4 H  ◆在switch()中尽量使用连续的小数值判断!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-8 05:55 , Processed in 0.356689 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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