У нас такое странное поведение на 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);
}
Кто-нибудь видел что-нибудь подобное раньше?