Показать сообщение отдельно
Старый 01.09.2011, 14:56   #28
AssA
AnyKey`щик
 
Аватар для AssA
 
Регистрация: 31.07.2011
Сообщений: 10
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ

вопрос: шла речь о "сделайте перерисовку только этой области, а не всего дисплея."
repaint отрисовывает весь экран. как отрисовать именно нужный участок?

и еще: как правильнее объявить переменную tmpGlob в таком случае (т.е. результат функции не нужен). использовать глобальную или создать локальную? к глобальной доступ медленнее, локальная - память занимает......

procedure _light_on;
begin
  if sett_light_sw then tmpGlob:= set_lights(0, 100);
end;
позвольте поделиться своими наблюдениями:
1) в отличии от делфей, в мидлет паскаль в условии проверяется всегда оба логических выражения, что может приводить к ошибкам:

program a;
const
  len = 10;
var 
  i: integer;
  ar: array[0..len] of integer;
begin
  i:=0;
  while (i<=len)and(ar[i]<>0) do i:=i+1; 
  // на последнем шаге, когда i=len+1, будет проверка несуществующего ar[11]  
end;
2) в цикле
for i:=0 to L do ...
аргумент L вычисляется каждый раз. я имею ввиду L как выражение, например length(s), и если в цикле длина строки изменилась, число итераций также измениться.

3) для циклов быстрее всего выполняется условие
const
  MAXLEN=10;
.....
while i<MAXLEN do ...
чуть медленнее
while i<=MAXIND do ...
и почти в 2 раза медленнее
while i<MAXIND+1 do ...
тестировал на своем телефоне, возможно на других будет по-другому.

Последний раз редактировалось AssA, 01.09.2011 в 18:07.
(Offline)
 
Ответить с цитированием