Показать сообщение отдельно
  #4  
Старый 10.08.2014, 13:22
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Жесть.
Код:
s := '$' + inttohex(MSG.wParam, 1);
i := StrToInt(s);
IntToHex - это цикл из shr, and и +. На 4-байтовое число примерно операций 80-100. + выделение памяти под строку (очень долго) и сложение строк.
StrToInt то же самое, только в обратную сторону (еще ~100 команд минимум).
В то время как (wParam and $80000000) = 0 компилируется в одну команду. И integer(wParam) > 0 тоже. Лучше поподробней разберись с этими вариантами, чтобы не мучить комп бесполезными вычислениями.
И вообще, в любом языке надо минимально пользоваться строками. Поскольку бинарные данные априори быстрее строк раз в 100 как минимум.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием