ostream :: flush context - PullRequest
       11

ostream :: flush context

0 голосов
/ 04 июня 2018

Я использую операции ostream::write и ostream::flush в многопоточном приложении в следующей последовательности:

// <<--  start time measurement
{
ostream::write();
ostream::flush();
}
//<<--  end time measurement

Проблема заключается в том, что при измерении времени для указанной последовательности я получаю оченькороткое время (~ 10 мсек), но время между входом в поток становится очень большим (~ 400 мсек), только из-за добавления команд ostream::flush и ostream:::write.Лишь время от времени я понимаю, что разница во времени становится больше, но я не уверен, что это из-за некоторого переключения контекста.

Я тестирую его на Linux-машине, двухъядерном процессоре.

Это сбивает меня с толку, Я предположил, что обе эти функции блокируют, или же запись фактически выполняется только после fflush?

РЕДАКТИРОВАТЬ :

только один поток выполняет запись в файл.

...