Speicher eines Bildes manuell freigeben
Übersicht

![]() |
das wurgelBetreff: Speicher eines Bildes manuell freigeben |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Comminity
Wenn ich zu Hauf und ununterbrochen Bilder lade, und sie wegwerfe indem ich die Referenz überschreibe, kommt der GC irgendwie nicht hinterher und es gibt nach einiger Zeit und ein bisschen mehr als ein GB Arbeitsspeicher den Fehler "EXCEPTION_ACESS_VIOLATION". Das passiert auch, wenn ich den GC manuell aufrufe. Probiert das z.B. mal auf einen Ordner, der viele Bilder enthält: BlitzMax: [AUSKLAPPEN] SuperStrict Wie kann man das vermeiden? MfG edit: Hab jetzt noch was getestet: Selbst wenn ich das Programm komplett anhalte, will der GC seine Arbeit nicht tun. Ich versteh das nicht. |
||
1 ist ungefähr 3 |
- Zuletzt bearbeitet von das wurgel am Do, Sep 30, 2010 17:10, insgesamt 2-mal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Passiert es auch wenn Du den GC auf "Manual Collect' stellst? | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
das wurgel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh das hab ich vergessen... Es passiert aber immer noch das selbe. Eigentlich müsste es ja auch so funzen.
edit: Der Fehler kommt bei LoadPixmap nicht. |
||
1 ist ungefähr 3 |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Pixmaps werden ja in den RAM geladen, nicht inden VRAM. Vielleicht hilft es Dir dann und wann ein neues Graphics()-Objekt zu erstellen und damit den Grakaspeicher zu entmüllen. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
das wurgel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schon, aber bei LoadImage wird erstmal eine Pixmap erstellt, deren Speicher dann nicht mehr freigegeben wird. Es liegt also gewissermaßen schon an den Pixmaps, nur passiert es komischerweise nicht wenn man CreatePixmap benutzt.
Der Debugger zeigt mir diese Zeile an: pixmap.bmx hat Folgendes geschrieben: Code: [AUSKLAPPEN]
pixmap.pixels=MemAlloc( capacity ) Es ist auch der benutzte RAM der während der laufzeit stetig ansteigt. Neue Graphics-Objekte zu erstellen hilft da auch nichts (Ich habs natürlich auch Mal ausprobiert), aber trotzdem danke schonmal für die Hilfe. Und was ich ich noch gerne wissen würde: Kommt der Fehler bei euch eigentlich auch? Mein Betriebssytem: Windows 7 64bit |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group