Где MemoryStream записывает данные

Я задаю этот вопрос только из любопытства. Куда идут данные, записанные в MemoryStream? Эта ссылка говорит,

Создает поток, чьим резервным хранилищем является память.

Я должен спросить, что это за память? Это RAM или ROM? Я искал в Google, но не нашел прямых ответов. Куда бы я ни посмотрел, везде написано, что данные записаны в памяти, но никто не говорит о типе памяти.

2 ответа

Решение

Он хранится в оперативной памяти, в куче. Каждый процесс, работающий в Windows, получает свое собственное виртуальное адресное пространство памяти в оперативной памяти. Часть этой памяти используется для хранения инструкций процесса, а часть - для кучи и стека, которые являются разделами памяти, которые ваша программа использует для хранения переменных.

По сути, это оборачивает byte[] который это изменяет (через копию) по мере необходимости - так локальная управляемая память кучи.

Хотя технически это деталь реализации; он будет работать точно так же, если он будет использовать неуправляемый указатель на неуправляемую память или файл, отображенный в памяти (хотя тогда он не сможет предложить GetBuffer() метод).

Другие вопросы по тегам