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

Дробные числа сами по себе работают раз в 50 (а то и больше) медленнее целых.
Например:
Код:
a:=b+a;
Если a и b - Integer, этот код в ассемблере выглядит так:
Код:
 mov eax, b
 add eax, a
 mov a, eax
т.е. 3 команды.
Если эти числа - real, то сначала 5 строк заполнения параметров, потом вызов функции перевода b из Real в Extended, потом то же самое для A, потом функция сложения и функция перевода результата из Extended в Real. Все эти функции от 10 команд.

Функция Round тормозит прогресс. Приходится считать выражение дробным и переводить в целое.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием