扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:egxsguo 来源:51CTO.com 2007年9月4日
关键字:
在本页阅读全文(共2页)
如何优化?
知道了在那里优化,但如何进行优化呢?我们知道大部分的运算时间被花在了绘图函数上,J2ME已经为我们提供了这些函数,我们没有办法对这些函数的内部进行优化,但是我们仍然有选择权。下面我们来对J2ME提供给我们的绘图函数作一测试。
在Canvas类里添加测试代码如下:
|
该程序各函数分别绘制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()中尽量使用连续的小数值判断!
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者