Я создаю утилиту на C ++ для работы в Linux, которая может конвертировать видео в собственный формат.Видеокадры очень большие (до 16 мегапикселей), и мы должны иметь возможность непосредственно искать точные номера кадров, поэтому наш формат файла использует libz для сжатия каждого кадра по отдельности и добавления сжатых данных в файл.После завершения записи всех фреймов в конец файла записывается журнал, который включает метаданные для каждого фрейма (включая их смещения и размеры).
В настоящее время я использую ifstream и ofstream для файлового ввода-вывода, но я стараюсь максимально оптимизировать.Я слышал, что mmap () может увеличить производительность во многих случаях, и мне интересно, является ли мой одним из них.Наши файлы будут иметь размеры от десятков до сотен гигабайт, и хотя запись всегда будет выполняться последовательно, чтение с произвольным доступом должно выполняться в постоянное время.Есть какие-нибудь мысли о том, стоит ли мне исследовать это дальше, и если да, то есть ли у кого-нибудь какие-либо советы по поводу того, на что стоит обратить внимание?