LINUX.ORG.RU

[performance] Регистрозависимые ФС vs Регистронезависимые ФС


0

1

Я правильно понимаю, что файловые системы, которые не зависят от регистра букв, работают по определению медленнее ФС, имена в которых от регистра зависят?

Ведь для того, чтобы привести буквы к единому регистру, приходится сначала *все* буквы сконвертить в определенный регистр, а это лишние затраты.

Как доказательство моей правоты я рассматриваю Apple iOS FS, которая от регистра зависит, поскольку это, видимо, значительно влияет на производительность.

★★

Ответ на: комментарий от fragment

Это шутка или серьезно?

bk_ ★★
() автор топика

Конвертировать нужно только при резолвинге имени в каталоге, не? Какую часть от всех операций это занимает, подумай.

по определению

По какому еще определению? Ты наверное хотел сказщать «при прочих равных»? Только нет прочих равных, все ФС устроены очень по-разному.

geekless ★★
()
Ответ на: комментарий от geekless

при резолвинге имени в каталоге

А при резолвинге имени каталога/каталогов? Если ФС, как, н-р, в маке, безразлична к регистру, то она должна конвертить ВСЕ, а не только имена файлов.

bk_ ★★
() автор топика

Нет, это влияет в пределах погрешности.

CrossFire ★★★★★
()
Ответ на: комментарий от geekless

Я возьму эту умную мысль на вооружение.

ФС должна при каждом конвертировании path -> inode выполнять tolower(path). Неужто это никак не замедляет процесс? Но, по-видимому, с IO ничего не сравнится.

bk_ ★★
() автор топика
Ответ на: комментарий от bk_

ФС должна при каждом конвертировании path -> inode выполнять tolower(path). Неужто это никак не замедляет процесс?

Там же есть кэш path -> inode. Конвертирование нужно только при первом проходе.

geekless ★★
()
Ответ на: комментарий от geekless

кэш PaTh -> path

Я не понимаю. Тогда придется разжиться кэшом на все случаи жизни:

PaTH->path
pAth->path
PATH->path
Path -> path
...
bk_ ★★
() автор топика
Ответ на: комментарий от bk_

И еще, насчёт PaTh -> path -> inode я дурь сморозил. Обычный PaTh -> inode. Если обращаются с разными вариантами регистра, ну закэширует несколько разных вариантов, ничего страшного.

geekless ★★
()
Ответ на: комментарий от geekless

Каким образом я выиграю с точки зрения производительности, если буду использовать кэш в *данной* конкретной ситуации?

Что быстрее - сделать tolower() или найти соответствие переданной строки pAtH в кэше?

Как организовать такой кэш, чтобы он был быстрее, чем простой tolower()?

bk_ ★★
() автор топика
Ответ на: комментарий от geekless

2. Ты говоришь абстрактными понятиями. Что такое хэш и кэш я знаю хорошо. Каким должен быть хэш, чтобы кэш был обправдан?

bk_ ★★
() автор топика
Ответ на: комментарий от fragment

А зачем, кстати, конвертировать регистр?

Чтобы хомячки на форумах не кричали о том, что у них PiNg не работает.

f1xmAn ★★★★★
()
Ответ на: комментарий от bk_

Этот вопрос стоит адресовать не мне, а разработчикам dcache.

geekless ★★
()
Ответ на: комментарий от geekless

Только нет прочих равных, все ФС устроены очень по-разному.

Макос при форматировании hfs+ позволяет выбрать, будет фс регистрозависимая или нет. Не знаю, что и где конкретно меняется от этого выбора, но он есть.

note173 ★★★★★
()
Ответ на: комментарий от note173

Не знаю, что и где конкретно меняется от этого выбора, но он есть.

Говорят, на регистрозависимой ФС фотошоп перестаёт работать.

PolarFox ★★★★★
()

Работа с файловой системой — это по большей части операции записи в файл и чтения из файла. При этом абсолютно не важно, какой у файла регистр, сколько и каких букв в имени, так как обращение к файлу производится по файловому дескриптору — просто целому числу.

anonymous
()
Ответ на: комментарий от note173

Кстати в тех андроидах, в которых /sdcard и / находятся физически в одном модуле памяти без деления на разделы, используется FUSE-костыль, который имитирует регистронезависимость и 777-права, тогда как в реальности это просто директория где-то в родной ext3/4/etc.

DOS в общем к славному зоопарку регистро(не)зависимости привёл.

PolarFox ★★★★★
()
Ответ на: комментарий от anonymous

На твоём десктопе ОС каждую секунду открывает и закрывает сотни мелких файлов? И операция приведения к одному регистру (выполняющаяся над данными в памяти) по времени сравнима с операцией произвольного доступа к данным на диске?

Или как мы меряем производительность?

anonymous
()

А тем временем Development медленно скатывался в конференцию Денисок.

melkor217 ★★★★★
()

Я правильно понимаю, что файловые системы, которые не зависят от регистра букв, работают по определению медленнее ФС, имена в которых от регистра зависят?

да. Особенно если буквы многобайтовые (UTF-8). Хотя проявляется это только в некоторых случаях.

drBatty ★★
()

Кто тебе мешает привести буквы к единому регистру при создании/переименовывании файла?

anonymous
()

Как доказательство моей правоты я рассматриваю Apple iOS FS, которая от регистра зависит, поскольку это, видимо, значительно влияет на производительность.

ну раз такое убедительно доказательство то не о чем спорить :)

true_admin ★★★★★
()

Когда компьютеры были большими, корпоративные разрабы не боялись почему-то делать ФС case-preserving, case-insensitive, хотя у них не было двагигадваядра на телефонах.

Xenesz ★★★★
()
Ответ на: комментарий от Xenesz

Когда компьютеры были большими, корпоративные разрабы не боялись
почему-то делать ФС case-preserving, case-insensitive

Ты имеешь ввиду Microsoft?

pacify ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.