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