Шаг 524.
Библиотека STL. Ввод-вывод с использованием потоковых классов. Проблемы эффективности. Буферизация в потоковых буферах

    На этом шаге мы рассмотрим особенности буферизации в потоковых буферах и приведем несколько рекомендаций по организации эффективной работы.

    Буферизация ввода-вывода также является важным фактором эффективности. Системные вызовы обычно обходятся относительно дорого, поэтому их количество должно быть по возможности сведено к минимуму. Тем не менее существует и другая, более тонкая причина для буферизации в потоковых буферах C++ (по крайней мере, при вводе): функции форматного ввода-вывода работают с потоками данных при помощи итераторов потоковых буферов, а операции с итераторами медленнее операций с указателями. Отличия не так уж велики, но вполне достаточны для того, чтобы оправдать применение оптимизированных реализаций для частых операций (например, форматированного ввода числовых данных). Однако для этого необходимо применение буферизации в потоковых буферах.

    Итак, весь ввод-вывод осуществляется через потоковые буферы, обеспечивающие механизм буферизации. Но полагаться только на эту буферизацию недостаточно по трем причинам.

    На следующем шаге мы рассмотрим непосредственную работу с потоковыми буферами.




Предыдущий шаг Содержание Следующий шаг