Если я использую MemoryStream для хранения половины гигабайта данных, а затем отбрасываю его, какой долгосрочный эффект это будет иметь?

В моей роли Azure с кодом C #внутри 64-битного процесса я хочу загрузить ZIP-файл и распаковать его как можно быстрее. Я подумал, что могу сделать следующее :создать экземпляр MemoryStream, загрузить в него MemoryStream, затем передать поток в какую-нибудь библиотеку обработки ZIP для распаковки, а после завершения распаковки отбросить поток. Таким образом я бы избавился от последовательности записи -чтения -записи, которая излишне выполняет много операций ввода-вывода.

Однако я читал, чтоMemoryStreamподдерживается массивом , и с половиной гигабайта этот массив определенно будет считаться «большим объектом» и будет размещен в куче больших объектов, которая не сжимается при сборке мусора . Это заставляет меня беспокоиться о том, что, возможно, такое использование MemoryStreamприведет к фрагментации памяти процесса и негативным долгосрочным последствиям.

Будет ли это иметь какие-либо долгосрочные -негативные последствия для моего процесса?

6
задан Community 23 May 2017 в 12:27
поделиться