среда, 3 марта 2010 г.

endl effect

При разработке часто используют вывод отладочной информации в лог файлы. В простейшем случае это может выглядеть вот так:
ofstream_log_file_ << 
  "Add useful debug message here " << 
  extra_info_ << std::endl;
В этом коде вызывается функция std::endl, которая помимо перевода строки для буферезированных потоков сбрасывает буфер в выходной файл. При небольшом количестве таких вызовов это даже полезно — в случае падения программы в логе останется полезная информация. Но для интенсивного логгирования, когда нужно писать в лог очень часто, эта дополнительная особенность снижает скорость в несчитанное количество раз.

Ускорить запись в лог очень просто — меняем std::endl на известный символ "\n".
ofstream_log_file_ << 
  "Add useful debug message here " << 
  extra_info_ << "\n";

Комментировать в ВКонтакте