Как заставить IOStream работать лучше?

Большинство пользователей C ++, изучавших C, предпочитают использовать семейство функций printf / scanf даже когда они кодируют на C ++.

Хотя я признаю, что считаю интерфейс лучше (особенно POSIX-подобный формат и локализация), кажется, что подавляющее беспокойство вызывает производительность.

Рассмотрение этого вопроса :

Как мне ускорить построчное чтение файла

Похоже, что лучший ответ - использовать fscanf и что C ++ ifstream последовательно 2-3 раз медленнее.

Я подумал, что было бы здорово, если бы мы могли скомпилировать репозиторий "советов" для улучшения производительности IOStreams, что работает, а что нет.

Указывает на

  • буферизацию ( rdbuf ( ) -> pubsetbuf (buffer, size) )
  • синхронизация ( std :: ios_base :: sync_with_stdio )
  • обработка локали (можем ли мы использовать урезанный языковой стандарт или удалить его вообще?)

Конечно, приветствуются другие подходы.

Примечание: упоминалась «новая» реализация Дитмара Куля, но я не смог найти о ней много деталей. Предыдущие ссылки кажутся мертвыми.

62
задан Community 23 May 2017 в 11:54
поделиться