Re: Сканирование каталогов
On 2010.02.05 at 20:18:19 +0200, Serhiy Storchaka wrote:
>
> Торможение может быть или из-за чтения каталогов (а в таких библиотеках
> каждый текст лежит в своём отдельном каталоге), или из-за вызовов stat. С
Там нифига не каждый текст был в отдельном каталоге. Когда я это
тестировал (а это был, все же, не lib.rus.ec, а еще aldebaran),
то там было по каталогу на автора. Это, конечно, не идеальное
логарифмическое распределение файлов (идеальное было бы на 10000 файлов
100 каталогов по 100 файлов в каждом) но близко к тому.
> первым можно справиться, перенеся все файлы в один каталог (это частично
> устранит и вторую причину). Для второго нужно смотреть, не вызывается ли
Зависит от файловой системы. Если в этой файловой системе каталоги не
хэшированы, то десятки тысяч файлов в каталоге как раз создадут тормоза,
а не устранят их.
> stat для одного файла многократно (в врапперах для st_mode, st_mtime
> st_size???), и попытаться объединить. Ну и убедиться, что самые дешёвые и
> вероятные проверки стоят первыми и не изменившийся файл не читается (у
> Печникова он читается 2-3 раза).
У FBReader уже тогда было го-о-ораздо лучше. Но не настолько лучше,
чтобы можно было все 150000 книг lib.rus.ec положить на fat32 32-гиговую
флэшку и засунуть в N800.
Reply to: