Warum hinterlassen Bilder riesige Mengen RAM? [geschlossen]C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Warum hinterlassen Bilder riesige Mengen RAM? [geschlossen]

Post by Anonymous »

Ich arbeite derzeit an einem .NET 9 WinForms-Programm, das einen ImageViewer enthält, ein separates Fenster, in dem Sie durch eine Reihe von Bildern scrollen können.
Mein Problem ist, dass selbst nach dem Schließen des Formulars und der Pflege aller Verweise auf die Bilder, die wie folgt geladen wurden:

Code: Select all

ThingFile? imageFile = await ThingData.LoadFileAsync(Images[Index].ID);
ArgumentNullException.ThrowIfNull(imageFile);

try
{
if (ThingData.VerifyFile(imageFile) && imageFile.Content != null)
{
var imageData = imageFile.Content;

imageFile.Clear();

using var img = new MagickImage(imageData);
if (img.ColorSpace != ColorSpace.sRGB)
{
img.TransformColorSpace(ColorProfile.SRGB);
}

using var ms = new MemoryStream();
img.Write(ms, MagickFormat.Png32);
ms.Position = 0;

using var tempBitmap = new Bitmap(ms);
pictureBox.Image = (Bitmap)tempBitmap.Clone();
imageData = null;
}
else
{
ArgumentNullException.ThrowIfNull(pictureBox.ErrorImage);
pictureBox.Image = (Image)pictureBox.ErrorImage.Clone();
}
}
finally
{
imageFile = null;
}
Der zugewiesene RAM ist erheblich größer als vor Beginn der gesamten Prozedur.
Nach der Analyse der Speichernutzung mit dotMemory wurden beispielsweise 60 MB verwendet, der ImageViewer wurde verwendet und geschlossen, und (selbst nach dem Aufruf des GarbageCollector mit GC.Collect(); ) war der RAM auf 100 MB gestiegen. Die 40 MB wurden nicht nur nicht freigegeben, sondern gingen verloren, da eine erneute Wiederholung dazu führen würde, dass der RAM bei 140, dann bei 180 usw. wäre...

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post
  • Zeigen Sie riesige Bilder in Android an
    by Anonymous » » in Android
    0 Replies
    10 Views
    Last post by Anonymous
  • Riesige Internetnutzung von Chrom und Chromedriver [geschlossen]
    by Anonymous » » in Python
    0 Replies
    6 Views
    Last post by Anonymous
  • Warum hinterlassen PHP-Array-Beispiele ein abschließendes Komma?
    by Guest » » in Php
    0 Replies
    12 Views
    Last post by Guest
  • Wie schneidet man mehrere Mengen?
    by Anonymous » » in Java
    0 Replies
    45 Views
    Last post by Anonymous
  • Schleifen zwischen Zahlen in einer Liste von Mengen finden
    by Guest » » in Python
    0 Replies
    31 Views
    Last post by Guest