![]() |
|
|
![]()
|
|
| Chingachguk |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Видимо, из-за dec cl (8 бит), а не dec ecx. Эта хрень была еще в 16-ти битном режиме. Вообще я согласен с теми, кто грил про то, что dec + jnz лучше loop. В оптимизированном компиляторе коде я редко видел loop. Попробуй dec al - все же это аккумулятор. Хотя я в это не верю. Или вот еще: Допустим, у тебя был код: mov dword ptr [ebp+10h],edx ; Команда не use ecx и не use flags dec cl jnz @@Loop Из-за конвеера лучше: dec cl mov dword ptr [ebp+10h],edx ; Команда не use ecx и не use flags jnz @@Loop А вообще всегда лучше смотреть весь цикл в целом. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
| eXz |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 21.7.2003 Репутация: нет Всего: нет |
|
||||
|
|||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
У меня тут вообще странные дела: вот если мерять по отдельности такое:
inc esi и add esi, ebx (ebx = 1) (выполнялись где-то раз мильон, замерялось с помощью GetTickCount) то получилось, что inc esi быстрее (как я и думал). Но вот в процедуре той, почему-то наоборот получается - подставляю вместо add esi, ebx строку inc esi - и получается медленне немного - странно... -------------------- С уважением, г-н Посол. |
|||
|
||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 Репутация: 1 Всего: 11 |
Хм... во-первых, насколько намного, а во вторых, зачем мерить какой-то GetTickCount, если есть RDTSC?
-------------------- Kernel panic: /dev/null overflow! GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y? B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981 |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Я сказал "немного", а не "намного"...
NightGoblin, а как работает RDTSC ? Вообще можешт ли дать мне линк, please, на описание инструкций какого-нибудь современного пня + всякие sse, mmx и что там еще есть... -------------------- С уважением, г-н Посол. |
|||
|
||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 Репутация: 1 Всего: 11 |
p0s0l, сори, не так прочитал
Описание RDTSC (взято из пресловутой книги Зубкова С.В.):
А описание команд... Вообще мне, например, все та же книжка описанием и служит. Если нужно что-то поновее Pentium Pro / Pentium II - смотри официальную документацию процессора Pentium 4 (весь мануал доступен тут) з.ы. пришлось попариться с дурацким поисковиком Intel'а, пока нашел то, что нужно -------------------- Kernel panic: /dev/null overflow! GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y? B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981 |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Cпасибо! Щас буду качать...
-------------------- С уважением, г-н Посол. |
|||
|
||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 Репутация: 1 Всего: 11 |
p0s0l,
Да, вот мне тут сегодня как раз понадобилось измерить скорость выполнения функции, для чего была написана коротенькая программка... Одна проблема - она под Linux... Надо? В смысле, синтаксис на Intel я переделаю, но как там в виндах делать вывод - я не знаю... точнее, неохота гадать Это сообщение отредактировал(а) NightGoblin - 10.9.2003, 05:08 -------------------- Kernel panic: /dev/null overflow! GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y? B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981 |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
NightGoblin - спасибо за предложение, но ты мне уже помог. Мерялку то я и сам уже написал с помощью RDTSC...
-------------------- С уважением, г-н Посол. |
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
У меня в какой-то из книг было написано, что самая быстрая последовательность инструкций должна следовать такому правилу: 1-я инструкция в 1 такт, вторая в 1 такт и третья в 4. Такие последовательности выполняются намного быстрее. Может это имел в виду Чингачгук?
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Чингачгук говорил о спаривании команд, а про 1-1-4 не слышал ничего...
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Про 1-1-4 я тоже не слышал - надо будет как-нибудь попробовать ;)
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |