Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.05;
Скачать: CL | DM;

Вниз

Насколько побитовые операции быстрее простого деления?   Найти похожие ветки 

 
TStas ©   (2009-05-05 17:21) [40]

> AlexDan Да нет, не простыми. Нужно программку несложную написать, которая будет тупыми переборами число решений для неких уравнений искать. Я ух уже несколько написал, просто в данном случае можно хорошую оптимизацию сделать, вот и нужно узнать, сколько тиков занимают следующие операции:
1) Присвоение Х1 := Х2
2) Сравнение В := Х1 = Х2;
3) Умножение Х1 := Х1 * Х2;
4) Сложение Х1 := Х1 + Х2;
5) Взятие по можулю Х1 := Х1 мод Р;
6) Вычитание Х1 := Х1 - Х2;
Чтобы понять, где нужно оптимизировать, а где не нужно. Если мод занимает примерно 70 тиков, то ясно, что писать If X1 >= P then x1 := x1 mod P нужно, а если and занимает 1 тик, то добавлять проверку ненужно.
Вроде, вычитание должно больше тиков, чем сложение занимать, ведь вычитание - это сложение с обратным, но, может, в процессор уже что-то встроено.


 
MBo ©   (2009-05-05 17:29) [41]

В большинстве случаев нужно сначала подумать о "тупых переборах", а уж в последнюю очередь о тиках операции mod


 
Jeer ©   (2009-05-05 17:38) [42]


> нужно сначала подумать о "тупых переборах"


Золотые слова :)


 
депутатъ   (2009-05-07 14:06) [43]

раз уж пошла такая пьянка, то фрагмент кода
int a; a = rand(); a %= 29;
gcc компилирует так:
1. с опциями -O0 -mtune=i386:
call _rand
movl %eax, -4(%ebp)
movl -4(%ebp), %edx
movl $29, -8(%ebp)
movl %edx, %eax
cltd
idivl -8(%ebp)
movl %edx, -4(%ebp)


2. с опциями -O0 -mtune=pentium4:
call _rand
movl %eax, -4(%ebp)
movl -4(%ebp), %ecx
movl $-1925330167, %eax
imull %ecx
leal (%edx, %ecx), %eax
movl %eax, %edx
sarl $4, %edx
movl %ecx, %eax
sarl $31, %eax
subl %eax, %edx
movl %edx, %eax
sall $3, %eax
subl %edx, %eax
sall $2, %eax
addl %edx, %eax
subl %eax, %ecx
movl %ecx, %eax
movl %eax, -4(%ebp)


это к вопросу о времени выполнения инструкции div.



Страницы: 1 2 вся ветка

Текущий архив: 2009.07.05;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.016 c
15-1241424482
Индеец
2009-05-04 12:08
2009.07.05
Поиск методов в модулях


11-1203580173
Tolyan
2008-02-21 10:49
2009.07.05
Создание формы визуально в KOL


15-1241549506
@!!ex
2009-05-05 22:51
2009.07.05
Inno Steup как установить иконкам рабочую папку?


6-1204349515
artkil
2008-03-01 08:31
2009.07.05
Delphi PHP Чат


4-1212474363
KygECHuK
2008-06-03 10:26
2009.07.05
Handle по DC