Задать вопрос
beavis88
@beavis88

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

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

В общем, я так понял стандартная реализация очень примитивна и заточена под простой сценарий одного прохода по большому файлу, может есть более продвинутые реализации, которые бы исходили из того что все операции с исходным потоком очень дорогие и их следует выполнять только при необходимости?
  • Вопрос задан
  • 197 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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