Показать сообщение отдельно
Старый 14.05.2013, 01:37   #42
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Распределение памяти в контроллере

Цитата:
Сообщение от младшой Посмотреть сообщение
Сравнивать время выполнения 3000 MUL (float) 3000 XOR (long int) мне кажется не вполне корректно, но пусть даже если умножение float на -1 производилось бы операцией XOR, вряд ли бы это уменьшило время выполнения операции настолько значительно (в случае 3000 операций разница 84 мс, но в случае одной разница будет составлять 30 мкс, если я не ошибся в подсчетах). А часто ли нам требуется умножение именно на -1?
Вот этого я и добивался от уважаемого tvf - хорошо проработанного вопроса

На настолько хорошо заданный вопрос очень легко ответить: введение "инверсии" для чисел с плавающей точкой действительно нецелесообразно.

Потери времени также зависят и от второго множителя. Что наблюдается "торможение" степенях двойки - это связано с несколько более лучшим "ускорением" операций с остальными числами.

В оригинальной мат. библиотеке для ядра AVR операция умножения в среднем выполняется в несколько раз медленнее, чем в нашей библиотеке. Я не помню точную величину, но раза в 4 дольше - это точно.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием