Этот раздел моего кода ниже приводит к увеличению объема памяти процесса (отображается средствами диагностики) более чем на 20 МБ каждые 10 секунд.
Если я закомментирую это, память процесса не увеличится.
Код кодирует изображение в массиве байтов [] prebuffer_to_IOS в InMemoryRandomAccessStream encoded_output_stream.
Есть ли ошибка в коде, или это проблема сбора мусора?
using (InMemoryRandomAccessStream encoded_output_stream = new InMemoryRandomAccessStream())
{
encoded_output_stream.Seek(0);
// Convert
// Init BitmapEncoder for output stream and PNG encoding method:
BitmapEncoder PNG_image_encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, encoded_output_stream);
PNG_image_encoder.SetSoftwareBitmap( latest_frame_SoftwareBitmap );
PNG_image_encoder.SetPixelData(
BitmapPixelFormat.Bgra8,
BitmapAlphaMode.Ignore,
(uint)latest_frame_SoftwareBitmap.PixelWidth,
(uint)latest_frame_SoftwareBitmap.PixelHeight,
dpiX: 96,
dpiY: 96,
pixels: Frames_To_iPad.prebuffer_to_IOS ); // INPUT TO ENCODE IS: prebuffer_to_IOS
await PNG_image_encoder.FlushAsync();
// Convert encoded stream to byte array for upload:
uint compressed_frame_size_bytes = (uint)encoded_output_stream.Size;
}