Stehe leider im Moment vor einem kleinen Problem mit der Speicherauslastung meines Programmes und wollte mal fragen, ob das normal ist
Und zwar geht es darum: Ich habe eine TList mit Objekten. Diese Objekte speichern u.a. jeweils ein JPEG mit den Maßen 240*338 Pixel. Durch eine relativ hohe Kompression haben die Bilder nur etwa 10 KB. Eine Routine geht dann die komplette Liste durch, erzeugt ein 24Bit-Bitmap mit den gleichen Maßen, stretcht das BMP auf die Größe 48x68 runter und fügt es zu einer ImageList hinzu. Die Bitmaps haben alle eine Größe von ca. 10 KB ( 48x68x24/8/1024 KB ). Starte ich das Programm, habe ich zu Beginn etwa eine Speicherauslastung von 2400 KB. Nach Aufruf der Routine mit 15 Elementen steigt meine Speicherauslastung jedoch auf etwa 6000 KB. Etwa 3600 KB kommen also einfach hinzu! Minus die 150 KB für die 15 Bitmap-Elemente in der ImageList, bleiben also etwa 3450 KB übrig. Das entspricht genau der Datengröße von 15 24Bit-Bitmaps in der Größe von 240*338 Pixeln. Allerdings erzeuge ich in der gesamten Routine nur einmal das Bitmap und gebe es am Ende wieder mit FreeAndNil frei. Im Moment hole ich mir das JPEG mit
bmp.Assign(JPEG);
,weil ich das wo gelesen habe. Vorher habe ich es auch schon anders probiert, hat aber nichts verändert.
Hoffe, mein Problem kann gelöst werden. Bei über 300 Elementen in der Liste steigt die Speicherauslastung nämlich drastisch an
Danke im Voraus
Patti