Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизЧто быстрее? Найти похожие ветки
← →
Dmk © (2004-03-14 18:59) [0]1. mov al, [eax]
and eax, $000000FF
или
2. movzx al, byte ptr [eax]
?
Если есть у кого-нибудь информация
по кол-ву тактов на инструкцию, поделитесь плз.
← →
Dmk © (2004-03-14 19:02) [1]Извиняюсь
2. movzx eax, byte ptr [eax]
← →
VMcL © (2004-03-14 19:22) [2]http://www.intel.com/
http://www.amd.com/
...
← →
Dmk © (2004-03-14 19:35) [3]У меня есть преподробнейшее описание инструкций, но там
не указано кол-во тактов.
← →
wl © (2004-03-14 22:03) [4]количество тактов у процессоров (разных фирм и поколений одной фирмы) для некой операции различное, что связано с непрерывным совершенствованием технологии, так что опираться на какой-либо конкретный процессор опасно, но чтобы проверить, можно в цикле выполнить обе эти операции раз так миллион, и сравнить время выпонления.
← →
Gero © (2004-03-14 22:26) [5]> выполнить обе эти операции раз так миллион
Скорее, миллиард.
← →
DiamondShark © (2004-03-14 22:40) [6]
> > выполнить обе эти операции раз так миллион
>
> Скорее, миллиард.
И не в многозадачной среде.
← →
wl © (2004-03-14 22:45) [7]но мне кажется всё-таки, что обе они работают одинаково медленно, потому что идёт переключение разрядности регистров (al - eax), что если мне не изменяет память, кроме всего прочего, не позволяет выполняться операции параллельно в конвейере, и требуется несколько циклов на переключение этой самой разрядности. если я не прав, то заранее извиняюсь, документацию по процессорам и профайлингу давно не читал.
← →
Dmk © (2004-03-14 23:11) [8]Нарыл я документацию по тактам, но для 486 машин.
Судя по ней операции movzx занимает 3 такта, а
mov и and по 1 такту.
Остается только верить =).
Спасибо всем за внимание.
← →
Defunct © (2004-03-15 08:28) [9]Быстрее будет:
MovZX AL, Byte Ptr [EAX]
Быстрее, и занимает меньше памяти
Dmk © (14.03.04 23:11) [8]
Не забывайте о тактах, которые требуются для выборки команды
← →
MBo © (2004-03-15 08:34) [10]>Dmk
movzx быстрее (экспериментировал в статье "Поставить точку")
← →
evvcom (2004-03-15 09:08) [11]Я думаю, боле-менее для "простых" команд можно ориентироваться по длине команды в байтах. Ведь выборка команды из памяти практически всегда отнимает у процессора гораздо больше времени, чем выполнение самой команды. Мне кажется, что это справедливо и для кеша. Хотя не спорю, может я и ошибаюсь. Исходя из длины команды:
mov al, [eax] // 2 байта
and eax, $FF // 5 байтов
// Итого 7 байт
movzx eax, byte ptr [eax] // всего 3 байта
И второй довод. Если бы на таких командах как movzx ничего бы не выигрывали, был бы смысл их вводить конструкторам?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c