站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题请教一个在S40下执行效率的问题

请教一个在S40下执行效率的问题

摘要: 请教一个在S40下执行效率的问题


目标:迷宫绘制。
描述:
通过深度优先遍历生成迷宫,该迷宫所对应二维矩阵结构如下所示(此处仅以7*7迷宫示例,实际过程中此处尺寸为17*17):
///////////////// 9 - 墙壁
//9 1 9 9 9 9 9// !9 - 通路
//9 1 2 1 2 1 9//
//9 2 9 9 9 9 9//
//9 1 9 1 2 1 9//
//9 2 9 2 9 2 9//
//9 1 2 1 9 1 9//
//9 9 9 9 9 1 9//
/////////////////

该二维矩阵中每一个元素均对应一个16*16的png图像,并根据矩阵元素在设备上显示所生成的迷宫。由于迷宫实际大小远远大于设备所显示尺寸,并且依据设备实际性能,拟采用以下方案实现设备输出。
实现方案:
建立当前设备显示所对应的二维矩阵,当前需要在设备上显示的迷宫区域所对应的矩阵元素整体赋值给显示设备对应的矩阵,当发生位置变换需要重新在设备上绘制迷宫时则重新构建该矩阵,以达到显示目的。
问题:
实际代码中采用第二种方案,每次键盘事件触发后重新构建设备显示矩阵,并在设备上绘制迷宫,但是刷新速度其慢无比,怀疑此处在构建矩阵以及加载对应图片时有太多的系统消耗。
求一个能够提高刷新速度的解决方案。感激不尽!!


你要是用SE T630(国内T628)能慢到你郁闷


在模拟器上已经让我受不了了
:(


我觉得不需要重构整个矩阵,矩阵生成后存到一个数组中,屏幕滚动的时候只重新刷新当然屏幕!


可能没有说清楚,每次键盘事件触发后只是重新构建在设备上所显示数据对应的二维数组,在实际环境下,是一个8*8的二维数组,而且每次重构数组取值是地图数组中某一固定区域,从计算量上来说应该不是很大呀?


问题解决了,完全是自己编码的问题。
在实在不能忍受的前提下,决定把每一个主要函数的运行时间输出出来,结果发现构建显示矩阵时消耗系统时间居然占到总体运行时间的87%,于是回到代码中,发现在构建该矩阵时居然为每一个元素创建了一个Image对象,这样实际上仅仅在这里就比预期多创建了254个Image对象,当然会出现屏幕刷新的问题!
Bingo!解决!多谢捧场!马上揭帖


↑返回目录
前一篇: 如何得到form.append("string")中string的内容
后一篇: 请问jar文件在手机上安装时,提示"档案已损坏"是什么原因?