![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Насколько мне извество, что бы удвоить число, лучше пользоваться сложением:
A:=A+A, а не умножением: A:=A*2. Где то я еще слышал про операцию переноса на один бит и не могу найти. Вопрос такой: можно ли получить выигрыш в скорости, используя какие-то конкретные операторы, вместо стандартных. Я не имею ввиду только удвоение.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#2 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Конечно, если операция повторяется в цикле достаточно большое количество раз.
пыщь
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.05.2007
Сообщений: 373
|
![]()
учитывая нынешние частоты процессоров этот выигрыш ты не заметишь.. разве что ты програмируешь какой нибудь контроллер.. где тебе важно время выполнения кода..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен: "Перемен!Мы ждем перемен!" |
![]() |
![]() |
![]() |
#4 | |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]() Цитата:
На сложении может много и не сэкономишь, но вот этот трюк заметно быстрее
пыщь
Последний раз редактировалось JTG; 05.06.2009 в 13:45. |
|
![]() |
![]() |
![]() |
#5 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Мммм... Не совсем понятен смысл этого приложения. Я в ассемблере не особо смыслю. Про сдвиг я имел ввиду операцию shl или как там она называется.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Кроме того, Inc(x) будет быстрее чем x:=x+1;
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#7 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Ну это вообще азы. INC(X), INC(X,N), DEC(X), DEC(X,N).
А вообще неплохо бы было выписать все такие операторы-оптимизаторы, что бы потом не искать.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#8 | |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]() Цитата:
x div 2 = x shr 1 x div 4 = x shr 2 x div 8 = x shr 3 ... иначе нужно комбинировать с умножением У меня 100.000.000 операций A := A div 5 занимает ~2400 тиков, (~4 сек) а такое же количество через mul/shr ~500 (меньше секунды) Выигрыш в 5 раз div ![]() mul/shr ![]() Однако нужно помнить, что компилятор делфи и сам по мере возможности пытается оптимизировать код, поэтому деление на 8, например, реализует так (эффективнее shr в 2 раза): ![]() Всё уже, кстати, написано на wasm.ru, там куча статей по оптимизации кода под разные процессоры
пыщь
Последний раз редактировалось JTG; 05.06.2009 в 14:18. |
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с программированием операций обработки файлов(Pascal) | Дима82 | Помощь студентам | 11 | 24.05.2008 18:02 |
Программирование операций обработки файлов | Дима82 | Фриланс | 1 | 19.05.2008 13:57 |
Программирование операций обработки двумерных массивов | Дима82 | Помощь студентам | 16 | 12.05.2008 21:33 |
Программирование операций обработки одномерных массивов | Дима82 | Помощь студентам | 12 | 11.05.2008 15:24 |