Сейчас на форуме: Slinger (+6 невидимых) |
![]() |
eXeL@B —› Основной форум —› Что быстрее выполнится 6 nop или JMP 2 байтовый ??? |
Посл.ответ | Сообщение |
|
Создано: 12 декабря 2006 23:29 · Личное сообщение · #1 В проге имеется определенная инструкция, кот. надо занупить (6 NOP). Можно ее заменить на JMP XXXXXX (кот. займет 2 байта, а остальные 4 можно не трогать, т.к. через них перепрыгнет однозначно), т.е. EB04 Вопрос: что быстрее выполнится 6 nop или JMP 2 байтовый (5 байтовый - не рассматривается). Логично вытекает: до какого предела можно нупить по сравнению с JMP (по скорости выполнения) Проц. Athlon. Прога нах. в постоянном цикле (содержащим данную инстр-ию), т.е. цикл закончился -> цикл повторяется. Необходима максимальная производ-ть. Просьба писать тех, кто знает, а не свои домыслы... (у меня и своих хватает). ![]() |
|
Создано: 12 декабря 2006 23:41 · Поправил: Maximus · Личное сообщение · #2 |
|
Создано: 12 декабря 2006 23:53 · Личное сообщение · #3 |
|
Создано: 12 декабря 2006 23:55 · Личное сообщение · #4 |
|
Создано: 12 декабря 2006 23:56 · Личное сообщение · #5 |
|
Создано: 13 декабря 2006 00:19 · Личное сообщение · #6 gegter пишет: Если nop'ов 126, то тоже "ясень пень Nop" ? Тебе что нужно? Занопить часть цикла? Тогда просто поставь jmp с начала ненужного участка на его конец. А разница в скорости выполнения nop и jmp $+4 настолько мала (если вообще есть - попробуй, замерь! ![]() ![]() |
|
Создано: 13 декабря 2006 00:50 · Личное сообщение · #7 Как будто трудно пятисек прогу накидать (см. аттач). Первый цикл 6 nop - на моем пенте 3 Гг выполняется около 0,4 сек, второй цикл из 2-х байтового jmp выполняется в 2 раза быстрее! Ответ однозначный - быстрее 2-байтовый jmp (в аттаче исходники, кто хочет может поглумиться с разыми количествами инструкций). ![]() ![]() |
|
Создано: 13 декабря 2006 01:21 · Поправил: gegter · Личное сообщение · #8 Что и требовалось доказать - мнения разделились - из логики одно, из регистров другое, на опыте - третье... Maximus Фактически было 2 вопроса: про 6 nop и если быстрее 6 nop, чем JMP, то до какого предела можно увеличивать кол-во последовательных nop, чтобы xx nop = jmp по скорости выполнения - но это уже для общего развития или если кто ранее пробовал, надеялся подскажут. Enigma пасиб... ![]() |
|
Создано: 13 декабря 2006 01:27 · Личное сообщение · #9 |
|
Создано: 13 декабря 2006 02:17 · Личное сообщение · #10 |
|
Создано: 13 декабря 2006 02:20 · Личное сообщение · #11 |
|
Создано: 13 декабря 2006 03:40 · Поправил: WoLFeR · Личное сообщение · #12 Enigma пишет: Первый цикл 6 nop - на моем пенте 3 Гг выполняется около 0,4 сек Пипец скоростень ![]() ![]() Для таких замеров юзается RDTSC а не GetTickCount. ТЕОРИЯ: 3 ггц - это 3 миллиарда тактов в секунду. и того у нас из масмовой хелпы: Для джампа: Operands rel32 (relative) 486 Clocks (3) А для одного нопа: Operands 486 Clocks (1) 90 NOP No operation И того 6 нопов - 6 тактов Джамп 3 такта. Теперь время с нопами 6/6миллиардов=0,0000000002с а не 0.4 джампы в 2 раза быстрее. RTFM друзья ![]() |
|
Создано: 13 декабря 2006 05:00 · Личное сообщение · #13 |
|
Создано: 13 декабря 2006 05:29 · Личное сообщение · #14 |
|
Создано: 13 декабря 2006 05:54 · Личное сообщение · #15 Не мог не ответить челу "WoLFeR", вот ту бадягу которую ты написал в прошлом посте, ты действительно уверен в своих словах! Чел, а чем ты объяснишь разницу во времени выполнения двух одинаковых (почти одинаковых) циклов из примера? Если 1 ноп выполняется за 2 E-10 секунды, чем ты объяснишь разницу в циклах, и такую ЗНАЧИТЕЛЬНУЮ разницу!!! По твоим словам значит что 1 такт процессора это выполнение одной инструкции процессора? Мягко говоря ты не прав!!!, И еще, раз уж разговор зашел про RDTSC - не работает она у меня на компе: excaption: INVALID_INSTUCTION! ![]() |
|
Создано: 13 декабря 2006 06:01 · Личное сообщение · #16 |
|
Создано: 13 декабря 2006 06:11 · Поправил: WoLFeR · Личное сообщение · #17 вот ту бадягу которую ты написал в прошлом посте, ты действительно уверен в своих словах! Бодягу написал ты ![]() Чел, а чем ты объяснишь разницу во времени выполнения двух одинаковых (почти одинаковых) циклов из примера? Если тебе нужно чтото обьеснять записывайся на курсы по архитектуре. Enigma Чувак для школьников есть другие форумы. Enigma пишет: Если 1 ноп выполняется за 2 E-10 секунды, чем ты объяснишь разницу в циклах, и такую ЗНАЧИТЕЛЬНУЮ разницу!!! Я помоему написал что есть мануал в котором написано сколько тактов какая команда занимает. Enigma пишет: И еще, раз уж разговор зашел про RDTSC - не работает она у Это проблема твоих кривых рук. Enigma пишет: Мягко говоря ты не прав!!! Мягко говоря прежде чем утвержать такое туфтовое мнение, нужно привести доказательства а не тупо ляпнуть. Ты хочеш сказать что ты прав что у тебя комнада ноп выполняется 0.4 секунды? Тогда если в твоем пятом класе тебя учительница не научила математики пощитаем: 1секунда=1000мс 0.4с=400мс тогда получается что в твоем случае за 1.6 секунду выполнится 4 байта программы. А теперь домашнее задание: Пощитать сколько времени уйдет на загрузку 100килобайтного Пе файла. *Пощитать сколько времени уйдет на загрузку 100килобайтного Пе файла учитывая выполнение системных функций. П.С. А теперь подотри сопли, на горшек и за уроки. Читаем мануал интера, и прилагающююся литературу. Если возникают такие иллюзии как "Чувак ты неправ, но почему я хз" сюда плиз не постить, тут и без тебя хватает пионеров. ![]() |
|
Создано: 13 декабря 2006 06:22 · Личное сообщение · #18 |
![]() |
eXeL@B —› Основной форум —› Что быстрее выполнится 6 nop или JMP 2 байтовый ??? |
Эта тема закрыта. Ответы больше не принимаются. |