Speicher freigeben [GELÖST]

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

ComNik

Betreff: Speicher freigeben [GELÖST]

BeitragMo, Mai 24, 2010 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu,

Schon seit etwas längerer Zeit frage ich mich, wie ich Speicher in Blitz Max freigeben kann.
Ich weiss das diese Aufgabe eigentlich der GC übernimmt, aber wenn ich z.B mitten im Spiel eine Liste von Objekten aus dem Speicher löschen will, brauche ich einen Weg das dem GC mitzuteilen.

Soweit ich weiss nutzt BlitzMax Reference Counting, also sollte ein Objekt vom GC gelöscht werden, wenn keine Referenzen mehr auf es bestehen.

Angenommen ich erstelle also so eine Liste:

BlitzMax:

Global liste:TList = CreateList()

For Local i:Int=0 Until 10
Local objekt:TMeineKlasse = New TMeineKlasse
ListAddLast(liste,objekt)
Next


Wenn ich nun einfach ein ClearList() aufrufe, werden dann alle Objekte in der Liste beim nächsten GC Durchlauf aus dem Speicher gelöscht?

Oder muss ich die Liste wieder durchgehen:

BlitzMax:

For Local objekt:TMeineKlasse = EachIn liste
objekt = Null
Next



Das wär meine erste Frage...

2.) Reicht generell auch ein objekt = Null (ohne andere Referenzen natürlich) um den Speicher freizugeben?


Danke und lg
ComNik
WIP: Vorx.Engine
  • Zuletzt bearbeitet von ComNik am Mo, Mai 24, 2010 16:33, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragMo, Mai 24, 2010 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
1. ClearList() bzw. List.clear() reicht aus.
2. Ja.

Wenn du jetzt und sofort den GC zur Arbeit veranlassen möchtest, rufe GCCollect() auf.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

ComNik

BeitragMo, Mai 24, 2010 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Dankeschön Smile

Dann mach ich das ja richtig...

lg
ComNik
WIP: Vorx.Engine

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group