Types löschen
Übersicht

![]() |
ToeBBetreff: Types löschen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also mal ne Frage, ich hab folgendes :
BlitzMax: [AUSKLAPPEN] Type TType Wenn ich jetzt TType.Remove() schreibe, ist dann wirklich der ganze Type eintrag gelöscht oder nur der Link in der Liste ? mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn das Objekt noch irgendwo referenziert wird, wird es nicht gelöscht. Ansonsten: Ja, sobald der GC bemerkt, dass auf das Objekt nicht mehr zugegriffen werden kann, wird der Speicher frei gegeben. | ||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was heißt referenziert ? HAb ich noch nie gehört xD
mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der GC zählt einfach, in wie vielen Variablen das Objekt abgelegt ist - Objekte werden in BlitzMax ja nicht kopiert, die Variablen zeigen auf den Speicher, in dem das richtige Objekt liegt (-> Referenz). Wenn du jetzt jede Variable Nullst, bzw. aus jeder Liste aus trägst, kann das Objekt nicht mehr erreicht werden und dann wird der Speicher wieder frei gemacht.
Also: Prinzipiell ja, funktioniert so. |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Etwas ist referenziert = Man kann über eine Variable auf das Objekt dieses zugreifen. (Die Variable ist eigentlich nur eine Referenz auf das Objekt!)
mfG mpmxyz Edit: 600 Beiträge! \o/ Edit2: Lass mir doch ein bisschen Freude! ![]() |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
- Zuletzt bearbeitet von mpmxyz am Mi, Sep 01, 2010 20:39, insgesamt 2-mal bearbeitet
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sagen wir mal, du machst:
BlitzMax: [AUSKLAPPEN] Global deineVariable:TDeinType = New TDeinType Dann referenzierst du eine Instanz von TDeinType auf die globale Variable "deineVariable". Wenn du diese Referenz nicht mit Null überschreibst, dann kann der GC keinesfalls wissen, dass du die Instanz gelöscht haben möchtest. Also, zuzüglich zu deiner Methode: BlitzMax: [AUSKLAPPEN] Global deineVariable:TDeinType = New TDeinType Dann wird nach einiger Zeit der Speicher, den deine Instanz belegte vom GC wieder frei gegeben. @mxzyZungebrech: 1753 \o/ bekomme ich nun einen Preis? |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Okay super danke ![]() mfg ToeB @Edit : Ich mach auch mal mit xD : 1928 \o/ ![]() Btw. Noch ein Edit : Das gilt doch nur für "Globale" zeiger bzw. Variablen oder ? also wenn ich irgentwo in einer Funktion schreibe : Code: [AUSKLAPPEN] Local tmp:TObject = New TObject
Und dann Remove() mache ist es doch gelöscht oder nicht ? |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kommt drauf an, wie groß deine Funktion ist.
Wenn die Funktion zuende gelaufen ist, gibts die Variable nicht mehr. Das läuft auf das selbe hinaus wie "tmp = Null". Aber erst wenn eins von beidem passiert ist, wird das Objekt gelöscht. |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group