repstosw 18 7 августа, 2022 Опубликовано 7 августа, 2022 · Жалоба Рассматриваю возможность перейти с файловой системы FAT32 на файловую систему EXT4. Цели: запись/чтение потокового аудио/видео на SD-карту. Один большой файл. Рассматривал ещё : EXT2 (устарела, проигрывает EXT4 по скорости, если у последней отключено журналирование), ReiserFS (хорошо работает на мелких файлах, на больших проигрывает EXT4). exFAT не подходит, так как SD карты менше 32 ГБ. Насколько будет быстрой запись-чтение в файл (последовательное) у EXT4 по сравнению FAT32 ? Какие есть ещё быстрые файловые системы для записи-чтения потокового аудио-видео? Требуется быстрая последовательная запись-чтение в один файл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 51 7 августа, 2022 Опубликовано 7 августа, 2022 (изменено) · Жалоба 4 часа назад, repstosw сказал: перейти с файловой системы FAT32 на файловую систему EXT4. И зачем этот гемор? Уж тогда сразу на линух переходите, ИМХО... 4 часа назад, repstosw сказал: Какие есть ещё быстрые файловые системы Думаете ЕХТ4 будет быстрее, с учетом журналов и пр?))))))))) Делайте буферизацию ФАТ, пишите большими блоками и будет счастье... И вообще тормоза в основном от физического носителя. Видеорегистраторы прекрасно пишут на ФАТ32 фулл хд видео... 4 часа назад, repstosw сказал: запись/чтение потокового аудио/видео на SD-карту. Почему для этих целей не использовать усб-флешку, например? Она заметно быстрее чем сд . Изменено 7 августа, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 2 7 августа, 2022 Опубликовано 7 августа, 2022 (изменено) · Жалоба Не надо ext4: она чрезвычайно жирная. Лучше выдернуть из старых ядер модуль ext2 и приколбасить его к микроконтроллеру. Я и сам давно так сделал бы, если б была нужда с флешками работать в виде ФС. Да, кстати, а зачем вам вообще ФС на флешке? Можно же просто линейно писать файлы - примерно как в формате tar, но с обозначением смещения на следующий кусок метаинформации (обычная структура: размер, atime/mtime etc, адрес следующего куска, собственно данные). Можно даже модуль FUSE для такой псевдоФС написать. И еще: на гитхабе есть множество ФС, предназначенных специально для МК. Поищите. Скажем, в данном случае вообще не нужно такое понятие, как директория - нужны лишь файлы, наваленные в корне. Не нужны права доступа. Зачастую даже atime/mtime не нужны - только ctime. P.S. что до VFAT, я никогда не использовал бы ее при работе с МК: во-первых, не встречал ни одной вменяемой реализации; во-вторых, она ужасна; в-третьих, нельзя облегчать вендовозам жизнь! Пусть хоть раз пересилят себя и почитают что-нибудь, кроме фконтактегов. Пересядут на линукс, а там, глядишь, IQ поднимется с 20 до хотя бы 80... Изменено 7 августа, 2022 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 51 7 августа, 2022 Опубликовано 7 августа, 2022 (изменено) · Жалоба 1 час назад, Eddy_Em сказал: в-третьих, нельзя облегчать вендовозам жизнь! Ха ха. Точно, если вы очень не хотите продавать свой товар, включите в него подобный гемор для клиентов, которые 80% сидят на винде, дайте фору конкурентам и избавьте себя от прибыли... Отличный бизнес-план! 1 час назад, Eddy_Em сказал: во-первых, не встречал ни одной вменяемой реализации; во-вторых, она ужасна; Кроме желчи можете привести хоть одно доказательство оного? А то я вот уже 10 лет свои разработки делаю исключительно на ФАТе, и от клиентов че-то жалоб не встречал... ЗЫ. Может просто надо уметь ее готовить?))) 1 час назад, Eddy_Em сказал: зачем вам вообще ФС на флешке? Можно же просто линейно писать файлы А вы как думаете? Путем неимоверного мыслительного процесса, мне показалось, что ТС предполагает перенос их на обычный комп для просмотра или чего еще... 1 час назад, Eddy_Em сказал: Скажем, в данном случае вообще не нужно такое понятие, как директория - нужны лишь файлы, наваленные в корне. Посчитайте, сколько отсутствие механизма работы с каталогами ускорит ФС? И прослезитесь, потому, что почти ни насколько, а теперь подумайте, насколько ускорит кэширование - вот вот... Для простейшей проверки можно взять старый комп с мс-дос 6.22 какой-нить и копировать большой файл с включенным smartdrive и без него... И еще раз напомню, что с ФАТ нужно работать кратными сектору блоками, иначе сначала идет чтение-дописывание-запись, в случае кратного размера сразу запись. Изменено 7 августа, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 2 7 августа, 2022 Опубликовано 7 августа, 2022 (изменено) · Жалоба 19 minutes ago, mantech said: мне показалось, что ТС предполагает перенос их на обычный комп для просмотра или чего еще... Для этого не нужна ФС вообще! В простейшем случае можно считывать дамп флешки при помощи dd. А про модуль FUSE я уже писал. Не надо нагружать МК лишней работой. Зачем ему знать о файловых системах, если нужно просто данные на флешку записать? Пусть пишет себе последовательными блоками. А уж софт на компе разберется, как это считать. А если человек не умеет пользоваться элементарной командой dd, гнать его в шею с работы на обучение! И пока не научится владеть компьютером хотя бы на уровне "начинающего юзера", до работы не допускать! 19 minutes ago, mantech said: 80% сидят на винде Это пока их руководители настолько глупы, что согласны держать некомпетентных на ставках! Вменяемый руководитель как минимум всех на курсы отправил. А еще лучше - сразу брал бы соображающих сотрудников на работу, чтобы не нужно было еще деньги и время на обучение тратить - этим они сами должны были заниматься до того, как на работу устроиться. Если человек не понимает, как собрать ядро, то компьютер ему в работе однозначно только во вред! Пусть на абаке считает и в тетрадку записывает. Изменено 7 августа, 2022 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 августа, 2022 Опубликовано 7 августа, 2022 · Жалоба 2 hours ago, mantech said: Думаете ЕХТ4 будет быстрее, с учетом журналов и пр?))))))))) журналы отключаются 2 hours ago, mantech said: Делайте буферизацию ФАТ, пишите большими блоками и будет счастье... И вообще тормоза в основном от физического носителя. делаю. Но хочется бОльшего. 1 hour ago, Eddy_Em said: Да, кстати, а зачем вам вообще ФС на флешке? Можно же просто линейно писать файлы - примерно как в формате tar, но с обозначением смещения на следующий кусок метаинформации (обычная структура: размер, atime/mtime etc, адрес следующего куска, собственно данные). Можно даже модуль FUSE для такой псевдоФС написать. Вначале так и делал. Но нужны файлы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 51 7 августа, 2022 Опубликовано 7 августа, 2022 (изменено) · Жалоба 1 час назад, Eddy_Em сказал: Это пока их руководители настолько глупы, что согласны держать некомпетентных на ставках! Е-мое... Даже не смешно. Иногда лучше жевать, чем говорить... Рюмашку накиньте - полегчает! 1 час назад, Eddy_Em сказал: компьютер ему в работе однозначно только во вред! Пусть на абаке считает и в тетрадку записывает. Вот именно, где ваша тетрадка... 1 час назад, repstosw сказал: Но хочется бОльшего. Большего, это сколько? Изменено 7 августа, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 7 августа, 2022 Опубликовано 7 августа, 2022 · Жалоба 8 hours ago, repstosw said: Насколько будет быстрой запись-чтение в файл (последовательное) у EXT4 по сравнению FAT32 ? Быстрее не будет. Оставьте FAT, добавьте грамотную буферизацию записи, если её еще нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 августа, 2022 Опубликовано 7 августа, 2022 · Жалоба Есть SD карта с 10-м классом скорости, которая подключена к V3s, T113-s3 или A13. И дефолтный драйвер, взятый с x-boot. На сколько быстрее можно поднять скорость чтения-записи на SD-карту, если её принудительно перевести в High Speed Mode? Питание карты 2,7-3,3 V. Добавит ли скорости предварительное стирание всех секторов карты перед началом записи на неё? Задача - выжать с SD карты максимум скорости чтения-записи. Реально? Предлагаю рассматривать нижний уровень - запись блоками кратных 512. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 7 августа, 2022 Опубликовано 7 августа, 2022 · Жалоба 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. А сейчас скорость упирается в транспорт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 августа, 2022 Опубликовано 7 августа, 2022 · Жалоба 53 minutes ago, aaarrr said: А сейчас скорость упирается в транспорт? Основная проблема возникает, когда размер очередного фрейма в потоке неизвестен. Есть только маркер начала и конца. Сейчас сделано чтение файла фиксированной порцией в память, которая заведомо больше размера одного фрейма. Затем идёт поиск начала и конца фрейма в памяти. После воспроизведения фрейма идёт корректировка файлового указателя на начало следующего фрейма + новое чтение блока, заведомо большего, чем фрейм. При этом кратность смещения нарушается - оно уже не 512. Как можно это оптимизировать по скорости? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 7 августа, 2022 Опубликовано 7 августа, 2022 · Жалоба На нижнем уровне (под ФС) кэш и буферизация записи есть? Если нет, то начинать с этого. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 августа, 2022 Опубликовано 7 августа, 2022 (изменено) · Жалоба 8 minutes ago, aaarrr said: На нижнем уровне (под ФС) кэш и буферизация записи есть? Если нет, то начинать с этого. Ни разу не встречал над FatFS прослоек типа кеша. Можете привести пример как это сделать (github.com) ? Сделал замеры: чтение файла блоками по 128 кБ занимает 26 мс. Это выходит 4,8 МБ в секунду. При этом драйвер SD карты всё время ставит частоту 25 МГц. Пробовал её увеличить до 50 МГц - выигрыша в скорости не дало. А вот в SPI режимах давало. Как-то кисло. Причём карта с 10-м классом по скорости. И файл не фрагментирован. Карту форматировал SD Formatter и средствами FatFs - результат одинаков. Размер кластера 32 кБ. Чтение секторов идёт по 64 штуки за раз. Изменено 7 августа, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 7 августа, 2022 Опубликовано 7 августа, 2022 · Жалоба 14 minutes ago, repstosw said: Ни разу не встречал над FatFS прослоек типа кеша. Можете привести пример как это сделать (github.com) ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 7 августа, 2022 Опубликовано 7 августа, 2022 · Жалоба Quote FatFs на STM32 - кеширование FAT32? Интересно, спасибо, почитаю. Сделал чтение файла блоками по 64 кБ. Это 13 мс. Этого хватает, чтобы начитать сжатый фрейм h264 разрешения 720x576 с качеством CRF=23 и успеть его показать с частотой кадров 30 FPS. Полагаю, что можно ещё уменьшить блок. А вообще, есть способ определить максимальный размер блока под сжатый фрейм у h264? приходится считывать блоками с перекрышем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться