Текст накапливается по частям перед отправкой клиенту.
Теперь мы используем собственный класс, который выделяет память для каждого куска как массив символов. (Во всяком случае, работает как char[][]
+ std::list<char*>
).
Затем мы собираем всю строку, преобразуем ее в std :: sting и затем создаем boost::asio::streambuf
, используя ее. Это достаточно медленно, я полагаю. Поправь меня, если я ошибаюсь.
Я знаю, что во многих случаях используется простой тип FILE
из stdio.h
. Как это работает? Выделяет память при каждой записи в нее. Итак, это быстрее и есть ли способ прочитать в boost::asio::streambuf
из FILE
?
ДОБАВИТЬ : Хм. Я забыл одну большую вещь :). Компиляция dll и основного приложения выполняется под несколько компиляторов, поэтому в нем не должно быть ничего stl ... Потому что это обычно вызывает много проблем при выполнении dll.