Перейти к содержанию
    

Переход с FAT32 на EXT4. насколько оправдан?

Рассматриваю возможность перейти с файловой системы FAT32 на файловую систему EXT4.

 

Цели: запись/чтение потокового аудио/видео на SD-карту.  Один большой файл.

 

Рассматривал ещё : EXT2 (устарела, проигрывает EXT4 по скорости, если у последней отключено журналирование), ReiserFS (хорошо работает на мелких файлах, на больших проигрывает EXT4).

exFAT не подходит, так как SD карты менше 32 ГБ.

 

Насколько будет быстрой запись-чтение в файл (последовательное) у EXT4 по сравнению FAT32 ?

 

Какие есть ещё быстрые файловые системы для записи-чтения потокового аудио-видео?  Требуется быстрая последовательная запись-чтение в один файл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, repstosw сказал:

перейти с файловой системы FAT32 на файловую систему EXT4.

И зачем этот гемор? Уж тогда сразу на линух переходите, ИМХО...

4 часа назад, repstosw сказал:

Какие есть ещё быстрые файловые системы

Думаете ЕХТ4 будет быстрее, с учетом журналов и пр?)))))))))   Делайте буферизацию ФАТ, пишите большими блоками и будет счастье... И вообще тормоза в основном от физического носителя.

Видеорегистраторы прекрасно пишут на ФАТ32 фулл хд видео...

4 часа назад, repstosw сказал:

запись/чтение потокового аудио/видео на SD-карту.

Почему для этих целей не использовать усб-флешку, например? Она заметно быстрее чем сд .

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не надо ext4: она чрезвычайно жирная. Лучше выдернуть из старых ядер модуль ext2 и приколбасить его к микроконтроллеру. Я и сам давно так сделал бы, если б была нужда с флешками работать в виде ФС.

Да, кстати, а зачем вам вообще ФС на флешке? Можно же просто линейно писать файлы - примерно как в формате tar, но с обозначением смещения на следующий кусок метаинформации (обычная структура: размер, atime/mtime etc, адрес следующего куска, собственно данные). Можно даже модуль FUSE для такой псевдоФС написать.

И еще: на гитхабе есть множество ФС, предназначенных специально для МК. Поищите. Скажем, в данном случае вообще не нужно такое понятие, как директория - нужны лишь файлы, наваленные в корне. Не нужны права доступа. Зачастую даже atime/mtime не нужны - только ctime.

P.S. что до VFAT, я никогда не использовал бы ее при работе с МК: во-первых, не встречал ни одной вменяемой реализации; во-вторых, она ужасна; в-третьих, нельзя облегчать вендовозам жизнь! Пусть хоть раз пересилят себя и почитают что-нибудь, кроме фконтактегов. Пересядут на линукс, а там, глядишь, IQ поднимется с 20 до хотя бы 80...

Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Eddy_Em сказал:

в-третьих, нельзя облегчать вендовозам жизнь!

Ха ха. Точно, если вы очень не хотите продавать свой товар, включите в него подобный гемор для клиентов, которые 80% сидят на винде, дайте фору конкурентам и избавьте себя от прибыли...  Отличный бизнес-план! :biggrin:

1 час назад, Eddy_Em сказал:

во-первых, не встречал ни одной вменяемой реализации; во-вторых, она ужасна;

Кроме желчи можете привести хоть одно доказательство оного? А то я вот уже 10 лет свои разработки делаю исключительно на ФАТе, и от клиентов че-то жалоб не встречал...

ЗЫ. Может просто надо уметь ее готовить?)))

1 час назад, Eddy_Em сказал:

зачем вам вообще ФС на флешке? Можно же просто линейно писать файлы

А вы как думаете? Путем неимоверного мыслительного процесса, мне показалось, что ТС предполагает перенос их на обычный комп для просмотра или чего еще...

1 час назад, Eddy_Em сказал:

Скажем, в данном случае вообще не нужно такое понятие, как директория - нужны лишь файлы, наваленные в корне.

Посчитайте, сколько отсутствие механизма работы с каталогами ускорит ФС?  И прослезитесь, потому, что почти ни насколько, а теперь подумайте, насколько ускорит кэширование - вот вот... Для простейшей проверки можно взять старый комп с мс-дос 6.22 какой-нить и копировать большой файл с включенным smartdrive и без него...

И еще раз напомню, что с ФАТ нужно работать кратными сектору блоками, иначе сначала идет чтение-дописывание-запись, в случае кратного размера сразу запись.

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, mantech said:

мне показалось, что ТС предполагает перенос их на обычный комп для просмотра или чего еще...

Для этого не нужна ФС вообще! В простейшем случае можно считывать дамп флешки при помощи dd. А про модуль FUSE я уже писал. Не надо нагружать МК лишней работой. Зачем ему знать о файловых системах, если нужно просто данные на флешку записать? Пусть пишет себе последовательными блоками. А уж софт на компе разберется, как это считать.

А если человек не умеет пользоваться элементарной командой dd, гнать его в шею с работы на обучение! И пока не научится владеть компьютером хотя бы на уровне "начинающего юзера", до работы не допускать!

19 minutes ago, mantech said:

80% сидят на винде

Это пока их руководители настолько глупы, что согласны держать некомпетентных на ставках! Вменяемый руководитель как минимум всех на курсы отправил. А еще лучше - сразу брал бы соображающих сотрудников на работу, чтобы не нужно было еще деньги и время на обучение тратить - этим они сами должны были заниматься до того, как на работу устроиться.

Если человек не понимает, как собрать ядро, то компьютер ему в работе однозначно только во вред! Пусть на абаке считает и в тетрадку записывает.

Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, mantech said:

Думаете ЕХТ4 будет быстрее, с учетом журналов и пр?))))))))) 

 

журналы отключаются

 

2 hours ago, mantech said:

Делайте буферизацию ФАТ, пишите большими блоками и будет счастье... И вообще тормоза в основном от физического носителя.

 

делаю.  Но хочется бОльшего.

 

1 hour ago, Eddy_Em said:

Да, кстати, а зачем вам вообще ФС на флешке? Можно же просто линейно писать файлы - примерно как в формате tar, но с обозначением смещения на следующий кусок метаинформации (обычная структура: размер, atime/mtime etc, адрес следующего куска, собственно данные). Можно даже модуль FUSE для такой псевдоФС написать.

 

Вначале так и делал.  Но нужны файлы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Eddy_Em сказал:

Это пока их руководители настолько глупы, что согласны держать некомпетентных на ставках!

Е-мое... Даже не смешно. Иногда лучше жевать, чем говорить... Рюмашку накиньте - полегчает!

1 час назад, Eddy_Em сказал:

компьютер ему в работе однозначно только во вред! Пусть на абаке считает и в тетрадку записывает.

Вот именно, где ваша тетрадка...

1 час назад, repstosw сказал:

Но хочется бОльшего.

Большего, это сколько?

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, repstosw said:

Насколько будет быстрой запись-чтение в файл (последовательное) у EXT4 по сравнению FAT32 ?

Быстрее не будет. Оставьте FAT, добавьте грамотную буферизацию записи, если её еще нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть SD карта с 10-м классом скорости, которая подключена к V3s, T113-s3 или A13.  И дефолтный драйвер, взятый с x-boot. 

На сколько быстрее можно поднять скорость чтения-записи на SD-карту, если её принудительно перевести в High Speed Mode?  Питание карты 2,7-3,3 V.

Добавит ли скорости предварительное стирание всех секторов карты перед началом записи на неё?

 

Задача - выжать с SD карты максимум скорости чтения-записи.

Реально?

Предлагаю рассматривать нижний уровень - запись блоками кратных 512.

 

image.thumb.png.d8077b8ffcd5c4df3c21fabb7dc2d19c.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 minutes ago, repstosw said:

Добавит ли скорости предварительное стирание всех секторов карты перед началом записи на неё?

Для подавляющего большинства карт значимой разницы не будет.

 

17 minutes ago, repstosw said:

Предлагаю рассматривать нижний уровень - запись блоками кратных 512.

Вот количеством блоков в одной операции и будет в основном определяться скорость записи.

 

22 minutes ago, repstosw said:

На сколько быстрее можно поднять скорость чтения-записи на SD-карту, если её принудительно перевести в High Speed Mode?  Питание карты 2,7-3,3 V.

А сейчас скорость упирается в транспорт?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

53 minutes ago, aaarrr said:

А сейчас скорость упирается в транспорт?

 

Основная проблема возникает, когда размер очередного фрейма в потоке неизвестен. Есть только маркер начала и конца.  Сейчас сделано чтение файла фиксированной порцией в память, которая заведомо больше размера одного фрейма.  Затем  идёт поиск начала и конца фрейма в памяти.  После воспроизведения фрейма идёт корректировка файлового указателя на начало следующего фрейма + новое чтение блока, заведомо большего, чем фрейм.   При этом кратность смещения нарушается - оно уже не 512.   Как можно это оптимизировать по скорости?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На нижнем уровне (под ФС) кэш и буферизация записи есть? Если нет, то начинать с этого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, aaarrr said:

На нижнем уровне (под ФС) кэш и буферизация записи есть? Если нет, то начинать с этого.

 

Ни разу не встречал над FatFS прослоек типа кеша.  Можете привести пример как это сделать (github.com) ?

  

Сделал замеры: чтение файла блоками по 128 кБ занимает 26 мс.  Это выходит 4,8 МБ в секунду.   При этом драйвер  SD карты всё время ставит частоту 25 МГц.  Пробовал её увеличить до 50 МГц - выигрыша в скорости не дало.  А вот в SPI режимах давало.  Как-то кисло.  Причём карта с 10-м классом по скорости. И файл не фрагментирован. Карту форматировал  SD Formatter и средствами FatFs - результат одинаков.  Размер кластера 32 кБ.   Чтение секторов идёт по 64 штуки за раз.

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 minutes ago, repstosw said:

Ни разу не встречал над FatFS прослоек типа кеша.  Можете привести пример как это сделать (github.com) ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Quote

Интересно, спасибо, почитаю.

 

Сделал чтение файла блоками по 64 кБ. Это 13 мс.  Этого хватает, чтобы начитать сжатый фрейм h264  разрешения 720x576 с качеством CRF=23 и успеть его показать с частотой кадров 30 FPS.

Полагаю, что можно ещё уменьшить блок.   А вообще, есть способ определить максимальный размер блока под сжатый фрейм у h264?  приходится считывать блоками с перекрышем.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...