Как ускорить std::wofstream
От: Glenn  
Дата: 15.01.08 17:32
Оценка:
У меня есть такой код, выполняющйи запись в поток std::wofstream:

std::wofstream stream;
stream.open(L"D:\\MyFile.txt", std::ios_base::app | std::ios_base::out);

std::locale utf8locale = <Get UTF-8 locale>;
stream.imbue(utf8locale);

int i;
for (i = 0; i < 700000; ++i)
{
stream.write(L"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", 150);
}
stream.close();

Как-то это всё медленно работает — на машине P-4 3GHz выполнение этого кода (получается файл в 10 Mb) занимает 4.1 sec.
Нельзя ли как-то это ускорить?

Я уже пробовал установить большой буфер для этого потока (stream.rdbuf()->pubsetbuf(...)) — размером в 200 Kb. Но это ничего не ускорило.
Glen
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.