Как оптимизировать производительность iostream в C
C Пользователи часто предпочитают семейство функций Printf/Scanf по сравнению с Cistreams, несмотря на интерфейсные преимущества последнего. Проблемы производительности часто упоминаются в качестве основной причины этого предпочтения.
Buffering
увеличивая размер буфера базового потока, может значительно улучшить производительность путем снижения HDD -вызовов и системных вызовов. Это делается с:
char Buffer[N]; std::ifstream file("file.txt"); file.rdbuf()->pubsetbuf(Buffer, N);
locale обработка
локали могут ввести накладные расходы на производительность из-за преобразования символов, фильтрации и динамической диспетчеры. Установка локали в локале по умолчанию, который отключает эти операции, может улучшить производительность:
std::locale::global(std::locale("C"));]
synchronization
synchronization с c stdio (std :: ios_base :: sync_with_stdio (false)) не предлагает наблюдаемых преимуществ работы.
g 4.7.2 на Ubuntu 11.10: c 25% быстрее ] g 4.4.5 на Ubuntu Linux 10.10: C 17% быстрее
g на macos x: c 111% медленнее
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3