[AS3] Arbeitsspeicher freigeben

SCIPIO-AEMILIANUS

aka Dubdidadu
Ich hab im Moment das Problem, dass mein Programm nach ca. 5-6 User Interaktionen bei ca. 200 mb ram auslastung liegt. Ich lade Bilder lasse diese Anzeigen und wollt jetzt nachfragen wie ich am geschicktesten wieder den Speicher freigebe. Ich lasse die Bilder durch eine Klasse anzeigen. Muss ich die Bilder innerhalb der Klasse zuerst ausm Memory löschen oder kann ich das indem ich irgendwie die gesamte Klasse ausm Speicher streiche?

Ich schreib im moment eine Air APP in Flash CS4, nutze aber halt Actionscript als Sprache von daher hab ich erstmal in dieses Forum geschrieben, da ich denke, dass man mir hier auch sagen kann, wie das Problem löse.
 
Da bist du hier auch schon richtig - aber ohne zu sehen, wie genau du die Bilder einlädst lässt sich auch scher eroiren was du denn falsch machst bzw. was besser und speicherfreundlicher gelöst werden kann. Magst du mal entsprechende Code-Schnipsel posten? Oder gar die ganze fla?
 
Hab jetzt grad nicht den gesamten zur Hand aber im Prinzip nimmts folgenden Verlauf:

Die Ursprungsbilder haben meist immer um die 1 Mio Pixel.

Klasse mit übergebener URL zum Bild gestartet.
Loader lädt bild und wenn Event.COMPLETE gelaufen ist wird der Loader an eine Funktion übergeben, die ein 120*90 Pixel BitmapData zurückgibt und anschließend mit einem Bitmap(BitmapData) angezeigt.
Dann ruf ich beim Loader unload() auf, was den Loader ausm speicher löschen sollte.

Wenn ich nun wieder die Klasse(MovieClip) von der stage lösche ruf ich vorher eine Funktion in der Klasse auf(gibt ja soviel ich weiß keine Deconstructoren gibt in AS), die bei dem BitmapData Objekt dispose() aufruft und auch somit das Bild aus dem Speicher löschen sollte.

Gleichzeitig angezeigt werden immer 20-30 Bilder gleichzeitig. Inzwischen hab ich es geschafft, dass die Arbeitsspeicher auslastung bei ca. 150 mb konstant bleibt, was aber immer noch recht viel ist find ich.

Falls mehr Code benötigt wird, kann ich später wenn ich wieder Zuhaus bin den kompletten Code mal posten.
 
150mb ist sehr sehr viel! Vor allem für eine Bildergalerie. Poste mal bitte den Code oder die fla. Wie groß sind denn die Bilder mit 1 Mio. Pixel und wieso brauchst du die so groß und nimmst nicht einfach Thumbnails der Größe 120 * 90? Dass die dann per BitmapData skaliert werden ist ja schön aber je nach dem wie der Code ist bleibt alles im Speicher...
 

Neue Beiträge

Zurück