Накопление памяти на Xamarin.Ma c с использованием файловых потоков - PullRequest
0 голосов
/ 06 августа 2020

У нас такое странное поведение на Mac с накоплением памяти и очень медленным высвобождением. Я пропустил код через профилировщик xamarin, и он говорит, что каждый раз, когда мы запускаем следующий код, в файловом потоке создается байт [] размером 2 МБ, и они не освобождаются при удалении файлового потока.

Некоторые в тестах, которые мы провели, было накоплено 10 ГБ памяти за минуту, и после 8 минут бездействия память уменьшилась только на 1 ГБ

Мы запускаем тот же код на Windows, и использование памяти составляет отлично.

try
{
    using (var s =  new FileStream(fileLocation, FileMode.Open, FileAccess.Read, FileShare.Read, 2097152, FileOptions.Asynchronous))
    {
         var ms = new MemoryStream();

         await s.CopyToAsync(ms, 2097152, cancelToken);
         ms.Position = 0;

         return ms;
    }
}
catch (Exception ex)
{
    throw new ImageNotFoundException(fileLocation, "An error occured whilst trying to read the file", ex);
}

Кто-нибудь видел что-нибудь подобное раньше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...