Computer >> Máy Tính >  >> Lập trình >> C ++

Tại sao chúng ta nên tránh sử dụng std ::endl trong C ++

Trong phần này, chúng ta sẽ thấy lý do tại sao chúng ta nên tránh std ::endl trong khi in các dòng vào bảng điều khiển hoặc một tệp. Chúng tôi sử dụng std ::endl để tạo một dòng mới sau dòng hiện tại. Đối với một vài dòng hoạt động IO, nó không gây ra bất kỳ vấn đề nào. Nhưng đối với số lượng lớn các tác vụ IO, nó làm giảm hiệu suất.

Endl được sử dụng để tạo các dòng mới, nhưng nó không chỉ gửi đến dòng mới, sau khi gửi con trỏ đến dòng tiếp theo, nó sẽ xóa bộ đệm mỗi lần.

Việc xả bộ đệm không phải là nhiệm vụ của lập trình viên; hệ điều hành chịu trách nhiệm về nó. Mỗi lần nó yêu cầu xả, nó sẽ yêu cầu hệ điều hành. Yêu cầu này tương đối đắt. Và chúng tôi không thực sự cần phải làm sạch bộ đệm mỗi lần sau khi viết một số dòng. Các luồng IO tự động xóa bộ đệm khi nó đầy.

Nếu chúng ta phân tích thời gian cần thiết để viết gần 100000 dòng văn bản vào tệp bằng cách sử dụng std ::endl và sử dụng ‘\ n’, chúng ta có thể dễ dàng nhận thấy sự khác biệt. Mã đang sử dụng std ::endl mất gần hai lần để hoàn thành tác vụ so với việc sử dụng ‘\ n’ sau nó.