beavis88
@beavis88

Как избавиться от избыточных операций в BufferedStream?

Почему системный BufferedStream часто обращается к потоку который он буферезует когда это не следует делать? Например, если я сначала прочитаю несколько первых байт а потом выполню операцию Seek, Buffered Stream перенаправит ее в лежащий в основе поток, хотя в принципе я могу следующим запросом прочитать только те данные которые уже им буферезованы, или если потребуется больше данных чем уже имеется в буфере, BufferedStream все равно будет вынужден двигать курсор на размер данных буфера, так что первая смена позиции при любом раскладе избыточная.

В общем, я так понял стандартная реализация очень примитивна и заточена под простой сценарий одного прохода по большому файлу, может есть более продвинутые реализации, которые бы исходили из того что все операции с исходным потоком очень дорогие и их следует выполнять только при необходимости?
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы