Re: поиск

From
akrivosheev@utc.ru ()
To
Vladislav Gusev
Date
2002-09-10T23:53:44Z
Area
RU.ALGORITHMS
From: akrivosheev@utc.ru


>  >> чем на один цикл чтения четырёхбайтного слова из памяти.
>  Ну, не из памяти ,а скорее всего из кэша, строки все таки...
>  на PI/PII это 1 такт/1 m.
>  a> REPNE SCASB. - инструкция процессора выполняется примерно за 8 тактов.
>     по одному байту это конечно очень эффективно, на грани фантастики ;)
>  a> (одно сравнение+загрузка и пр...) Для сравнения команда JMP - выполняется
>  a> минимум за 7 тактов. Видимо с точки зрения быстродействия StrPos в Delphi
>  А мы что под 386 пишем ? Там как раз JMP 7 тактов было ,только тогда
>  REPNE SCASB никак не 8.

Да, это из книжки по 386 JMP - 7 тактов REPNE SCASB - 5 + 8*N при большом числе
повторений примерно 8 и будет. Ну и что? Может сейчас быстродействии и
улучшилось, но соотношение? И без разницы на чём и на каком процессоре - это
просто пример того что вообще-то не стоит изобретать велосипед раз его изобрели
уже - вряд ли у дилетанта получится лучше чем у програмиста что пишет компиляторы
и прочюю лабуду. Кроме того человек что спросил не обязательно использует пентиум
или другой современный процессор, может и что постарее или вовсе какой-нибудь
микроконтроллер для использования в записной книжке, а может и что-то типа
PowerPC или Cray.... так что предлагаю  закрыть тему как это реализовано в Интел
Пентиум или какой компилятор лучше.

>  PI/PII тратят 1 такт на правильно предсказанный выполненный переход.
>  a> наиболее оптимален для Интел процессора, потому как если мы напишем свой
>  Наиболее оптимальный код можно получить используя Intel C++ с векторизацией
>  и оптимизацией под MMX/SSE(ни всякий профи так напишет).
>  А делать с оглядкой на дельфи это просто глупо.

--- ifmail v.2.15dev5
 * Origin: JV Izhcom Ltd. (2:5020/400)