转:J2ME代码优化技巧
某程序各绘图函数分别绘制100*100的图形,经过一段时间以后,退出应用程序,我们得到如下图数据:
根据Profiler窗口所显示的数据,我们发现drawString最耗时。其次是drawRegion,所以我们应尽量避免使用drawString函数。
通过Profiler对各种函数及程序的测试,可以总结如下结论:
·仅当你需要的时候才去优化代码!
·仅优化那些最耗时的代码!
·使用Profiler去查找哪里需要优化!
·记住Profiler不代表真机上的优化结果,使用System Timer来在真机上做最后的测试!
·在做低级优化之前,总是要先思考算法是否是最优!
·绘图是很占用时间的,所以尽可能的减少Graphics函数的调用!
·尽可能的使用SetClip()来减少绘图区域,相对于SetClip(),drawImage()所花的时间会更可观!
·尽可能的将变量定义在循环以外!
·尽最大可能的进行对需要的数据进行预先计算并将结果保存在缓冲里!
·String类很容易产生垃圾内存,尽可能的使用StringBuffer代替String或用final static来定义之!
·假设是不被接受的,一切要以真机为据!
·尽量使用static final修饰函数,而避免synchronized修饰符!
·对于频繁调用的函数要使用尽可能少的参数!
·尽可能的不使用函数调用!
·尽可能的使用<<和>>来代替*和/!
·使用位操作来代替%运算!
·与0比较比与其他数值比较快!
·数组存取比C语言慢,尽可能不在循环中存取数组!
·局部变量比其他类型的变量运算要快!
·在switch()中尽量使用连续的小数值判断!
·尽量使用乘法而不使用除法!
·尽量使用已有算法!
·另外drawRegion方法在Nokia S40 3rd上还有
内存溢出的bug,要尽量减少使用。可以用setClip()和drawImage()组合来替代。
地址:http://games.sina.com.cn/m/n/2006-10-11/1021170392.shtml