Trong phần này, chúng ta sẽ xem tại sao nên tránh sử dụng std::endl khi ghi dòng ra console hoặc file. std::endl thường dùng để tạo dòng mới. Với vài thao tác I/O, nó không gây vấn đề. Nhưng với lượng lớn I/O, nó làm giảm hiệu năng đáng kể.
endl không chỉ đưa con trỏ xuống dòng mới, mà còn xả bộ đệm (flush buffer) mỗi lần. Việc xả bộ đệm không phải trách nhiệm của lập trình viên; hệ điều hành lo việc đó. Mỗi lần yêu cầu xả bộ đệm đều gọi đến hệ điều hành – thao tác tốn kém. Chúng ta thực sự không cần xả bộ đệm sau mỗi dòng. Các luồng I/O tự động xả khi bộ đệm đầy.
Nếu phân tích thời gian ghi ~100.000 dòng vào file bằng std::endl so với ký tự '\n', ta thấy rõ chênh lệch: code dùng std::endl mất gấp đôi thời gian so với dùng '\n'.