如何改善某些操作响应速度过慢问题?
[DESCRIPTION]
在做某些操作时响应速度过慢,如 Matrix menu 切换等
[SOLUTION]
1)可以用打ticks 的方式来查看程序执行时到底是那里耗时较多,打tick 方法为:
kal_uint32 time1,time2;
...
kal_get_time(&time1);
function();
kal_get_time(&time2);
...
kal_prompt_trace(MOD_MMI,"time1=%d time2=%d",time1,time2);
这样就可以根据 catcher 中打印的两个时间看出执行函数function()所用ticks(时间)
2)可以通过 catcher 中 trace 信息的 Frame 查看两条 trace 的时间差,计算方式举例如下:
Trace 1811950 46904 MOD_MMI TRACE_INFO Inside NetWorkSignalLevelIndication
Trace 1814288 49242 MOD_MMI TRACE_GROUP_1 OslWriteCircularQ: <#[0], read:[59],
write:[59]>
这两条 trace 的时间差就是: 4.615ms*(number of passed frames)
4.615*(1814288-1811950)ms
注: 1 ticks = 4.615ms
[REFERENCE]
改善方法请参考Some method of MMI speed optimization.xls 和 modification of speed
optimization.doc