Доступ к файлам
Ответ на первый вопрос: в зависимости от файловой системы.
В fat16/32 файлы в папке никак не сортируются и не индексируются. Поэто поиск происходит линейно и быстрее будет, если разложить файлы по папкам (фактически ты сам посттроишь дерево поиска).
Информация о файлах записывается в file allocation table, как бы она ни называлась. Поиск идет по этой таблице.
Скорость записи тоже зависит от ФС. В хороших ФС не зависит от длины.
Про хард сказать не могу, сам вопрос какой-то странный.
А блин. Скорость работы естественно зависит от длины файла, просто в новых ФС это хорошо оптимизировано - номера блоков хранятся в дереве, и оперируют они на самом деле не блоками, а extents - непрерывными цепочками блоков, что уменьшает размер дерева.
Вопрос (3) для того, чтобы если есть параметры сохраняемые в файлы, часть(не одна и та же) которых меняются, допустим, раз в секунду.
То нужно ли гемороиться с тем чтобы хранить изменения в памяти до какого-то момента, и потом записать все изменения разом, или можно сразу при изменении писать.
Об этом должна геммороиться ОС. Когда ты пишеш в файл OS пишет все в буфер. А потом сама по каким-то хитрым алгоритмам все это дело разруливает. Кстати поиск по именам файлов у всех нормальных FS уже давно логарифмический. И никаких списков FS не хранит. Сейчас это в основном B-деревья, а у понтовой reiser4 - "танцующие" деревья
XFS, ReiserFS, JFS, например. Они к тому же еще журналирующие.
Кстати поиск по именам файлов у всех нормальных FS уже давно логарифмический.Не "поиск логарифмический", а время поиска зависит от кол-ва файлов логарифмически.
Мне было лень это набивать Разве смысл не тот же?
Вообще-то смысл "поиск логарифмический" можно понять как угодно. Например, что хэш функция логарифм.
Оставить комментарий
feliks28
Как интересно происходит обращение к файлам с точки зрения компьютера?Как поиск в базе данных или почти моментально?
Т.е. если утрируя есть мильон файлов, то для быстрого доступа к конкретному файлу следует разбить их на тысячу папок по тысяче файлов в каждой или пофиг? (1)
И еще интересно :
-скорость записи в конец файла зависит от размера файла? (2)
-Хард быстрее посыпется если на него писать, считывать с него или пофиг? (3)
Ну и еще какие-нибудь непрограмные мелочи такие?