Нужно максимально оптимизировать файловый вывод. Начал с обычной очереди сообщений и записи в отдельном потоке с предварительным форматированием. Как и стоило ожидать, скорость не очень большая. На ум приходит собственная реализация streambuf, но не сильно надеюсь. Хотелось бы платформонезависимого решения и без скатывания в С (Желательно, но не критично). В какую сторону смотреть и где искать?
ADD
Из моей реализации самым ресурсоемким является захват/освобождение мьютекса (Попробовать неблокирующую очередь), auto command = _queue->front(); (Даже не знаю почему дольше остального) и сам out << str;. Т.е. фактические все ест много ресурсов. (Пока без кода, айпад и гитхаб не созданы для друг друга).
while(strings_to_write==0);
или хотябы:
while(strings_to_write==0)
std::this_thread::sleep_for(std::chrono::miliseconds(10));
Как в файл идёт запись. Я использую fstream binary работает достаточно быстро.
Не стоит загружать 1000 мелких кусков на запись. Лучше 1 раз сразу всё.
(Возможно мьютекс не освобождается во время записи 2 потоком, вот и возникает задержка)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей