1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| TarasBer |
3.01.2009 22:24
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Итак у нас, например, такая задача. Вещественное число из диапазона от 0 до 65535 преобразовать в word взятием целой части.
Это программа для дельфы.
Программа на моём селероне с 600 мегагерцами вывела вот что: Код Standart trunc: 1913 My trunc: 681 Floating point division: 1582 Результат налицо - стандартный транк медленнее даже столь дорогостоящей операции, как вещественное деление. Изврат, использующий внутренню структуру типа double, оказался намного быстрее. Для турбо паскаля аналогичная проверка выглядит так:
Программа показала вот что: Код Standart trunc: 58 My trunc: 7 Floating point division: 27 Тут результат ещё более на лицо. Доктор, доктор, что мне делать по этому поводу? -------------------- |
TarasBer Почему Trunc так медлителен? 3.01.2009 22:24
Account Лечиться собственным кодом:) 3.01.2009 23:21
volvo Использовать "изврат, использующий внутреннюю... 3.01.2009 23:39
TarasBer Дело в том, что я продолжаю гоняться за наивной де... 4.01.2009 0:07
volvo FastTrunc - это уже дополнительно написанная функц... 4.01.2009 0:14
TarasBer
Нет, не макрос, именно функция...
Это всё объя... 4.01.2009 0:23
volvo Ну, заменим генерацию и умножение на доступ к элем... 4.01.2009 1:39
volvo Кстати, вот вариант от Merlyn-а, который перекрыва... 4.01.2009 12:09
TarasBer
const Half: double = 0.5 ;
asm
fld d
fs... 4.01.2009 15:50![]() ![]() |
|
Текстовая версия | 8.12.2025 12:05 |