Я записываю аудио и записываю то же самое на SD-карту, скорость передачи данных составляет около 1,5 МБ/с. Я использую SD-карту класса 4 с файловой системой ext4.
Через определенный интервал ядро автоматически синхронизирует файлы. Недостатком этого является то, что мои буферы приложений накапливаются в ожидании записи на диск.
Я думаю, что если ядро часто синхронизирует то, что оно делает сейчас, это может решить проблему.
Я использовал fsync()
в приложении для синхронизации через определенные промежутки времени. Но это не решает проблему, потому что в определенные моменты ядро синхронизировалось непосредственно перед вызовом приложения fsync()
, поэтому вызов fsync() из приложения был пустой тратой времени.
Мне нужен механизм синхронизации (скажем, smart_fsync()
), чтобы, когда приложение вызывает smart_fsync(), ядро синхронизировалось только в том случае, если оно не синхронизировалось какое-то время, иначе оно просто вернется.
Так как нет функции как smart_fsync()
. какой может быть возможный обходной путь?