Может ли MemoryStream уменьшить свою емкость? - PullRequest
0 голосов
/ 29 апреля 2020

Когда я вызываю MemoryStream.SetLength () и устанавливаю длину меньше текущей длины, возможно ли, что MemoryStream перераспределяет свой буфер для уменьшения емкости?

Другими словами, я знаю, что когда MemoryStream ( созданный без резервного байта []) записывается, он будет динамически регулировать свою емкость, перераспределяя свой буфер с удвоенным размером при каждом достижении емкости. Мой вопрос, происходит ли что-то подобное в обратном порядке? Если я уменьшу длину потока, вызвав SetLength (), будет ли он в какой-то момент перераспределен в меньший буфер? Или он всегда будет сохранять один и тот же буфер в этом случае и просто изменять переменную длины?

Я посмотрел на исходный код, и он этого не делает, но поскольку документация точно не прописывает его, Я не уверен, что это может быть изменено. Я беспокоюсь, если у меня есть код, который часто вызывает SetLength () для уменьшения длины, может ли это теоретически понизить производительность из-за внутреннего изменения размера?

...