Оптимизация записи в файл

205
11 января 2018, 22:50

Нужно максимально оптимизировать файловый вывод. Начал с обычной очереди сообщений и записи в отдельном потоке с предварительным форматированием. Как и стоило ожидать, скорость не очень большая. На ум приходит собственная реализация streambuf, но не сильно надеюсь. Хотелось бы платформонезависимого решения и без скатывания в С (Желательно, но не критично). В какую сторону смотреть и где искать?

ADD

Из моей реализации самым ресурсоемким является захват/освобождение мьютекса (Попробовать неблокирующую очередь), auto command = _queue->front(); (Даже не знаю почему дольше остального) и сам out << str;. Т.е. фактические все ест много ресурсов. (Пока без кода, айпад и гитхаб не созданы для друг друга).

Answer 1
  1. поток не должен иметь цикла:

while(strings_to_write==0);

или хотябы:

while(strings_to_write==0)
    std::this_thread::sleep_for(std::chrono::miliseconds(10));
  1. Как в файл идёт запись. Я использую fstream binary работает достаточно быстро.

  2. Не стоит загружать 1000 мелких кусков на запись. Лучше 1 раз сразу всё.
    (Возможно мьютекс не освобождается во время записи 2 потоком, вот и возникает задержка)

READ ALSO
Быстрая сортировка C++ (qsort)

Быстрая сортировка C++ (qsort)

По ходу изучения предмета Алгоритмы и структуры данных, знакомлюсь с разными алгоритмами сортировки, конкретно с quick sort на данном этапе, задался...

237
V8 engine. Как создать callback (без Node JS)?

V8 engine. Как создать callback (без Node JS)?

Пытался я создать callback в v8 js engine но что то не получаетсяТо есть у меня не получается сохранить функцию чтобы потом ее вызвать

195
Проблема со взаимодействием Python и С++: could not find or load the Qt platform plugin &ldquo;windows&rdquo;

Проблема со взаимодействием Python и С++: could not find or load the Qt platform plugin “windows”

Добрый деньНачал изучение Python и столкнулся с проблемой, в сопряжении С++ и python 3

199