|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : akrivosheev@utc.ru 2:5020/400 09 Sep 2002 18:49:25 To : Valentin Davydov Subject : Re: поиск --------------------------------------------------------------------------------
> >> 4 байт в регистр процессора и последущего сравнения просто
> >> сдвигом на 8 разрядов.
> >А смысл? Раз уж загрузили 4 байта, так и сранивать надо 4 байта. ;)
>
> А смысл? Всё равно на побайтное сравнение 4х байт тратися меньше времени,
> чем на один цикл чтения четырёхбайтного слова из памяти.
Посмотрел как реализованна StrPos в Delphi. Hаписано на ассемблере и
использует при поиске
REPNE SCASB. - инструкция процессора выполняется примерно за 8 тактов. (одно
сравнение+загрузка и пр...) Для сравнения команда JMP - выполняется минимум
за 7 тактов. Видимо с точки зрения быстродействия StrPos в Delphi наиболее
оптимален для Интел процессора, потому как если мы напишем свой алгоритм
поиска при каждом сравнении потребуется как минимум одна команда перехода - 7
тактов, а ещё + загрузка, сравнение , сдвиг... выйдет как минимум больше 10
тактов процессора.
Так что вообще-то компиляторы не дураки пишут и стоит использовать их
команды... А то что файл в память не помещается весь, так это... его можно
кусками считывать, сколько в память влезет, хоть по килобайту - всё быстрее
чем посимвольно. ;)
--- ifmail v.2.15dev5
* Origin: JV Izhcom Ltd. (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/2087848dd019.html, оценка из 5, голосов 10
|