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)