Entwickler-Ecke
Andere .NET-Sprachen - Garbage Collector in Delphi 2005?
winx - Mo 29.08.05 15:01
Titel: Garbage Collector in Delphi 2005?
Hi,
wenn man in D2005 Anwendungen schreibt, müsste es doch dafür einen Garbage Collector geben oder?
Ist der nur bei .Net Projekten oder aber auch bei Win-32 Projekten dabei???
Danke,
winx
Moderiert von
Christian S.: Topic aus Sonstiges verschoben am Mo 29.08.2005 um 15:47
Christian S. - Mo 29.08.05 15:15
Hallo!
Die GC ist Teil des .NET Frameworks und nicht Teil von Delphi 2005 ansich. Daher gibt es ihn auch nur in .NET-Anwendungen.
Grüße
Christian
winx - Mo 29.08.05 15:29
und wie gut oder schlecht funktioniert dieser???
Christian S. - Mo 29.08.05 15:50
Hallo!
Hm, kann ich nicht so beurteilen. Die Programme, die ich bisher in .NET geschrieben habe, waren alle nicht so speicherintensiv, dass ich da Erfahungen mit sammeln konnte. :nixweiss:
Und da man unter .NET sowieso keine andere Wahl hat, als damit zu leben, habe ich auch nicht weiter nachgeforscht ;-) Allerdings genieße ich es, mich nicht mehr ums Freigeben von Speicher kümmern zu müssen. Ein Blich auf meinen Schreibtisch zeigt, dass ich es allgemein nicht so mit dem Aufäumen habe ;-)
Grüße
Christian
Marauder - Mo 29.08.05 21:13
Die Garbage Collection funktioniert erstaunlich gut, auch bei speichermordenden
Anwendungen. Wenn du es aber eilig hast und extra-Speicher brauchst mach es von Hand:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs); begin gc.Collect; end; |
Das ist auch interessant...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TWinForm.Button2_Click(sender: System.Object; e: System.EventArgs); var aString : array of String; a : Integer; begin Messagebox.Show ( 'Schätzwert für die reservierte Anzahl von Bytes momentan : ' + gc.GetTotalMemory(false).toString); setLength (aString,100); for a := 1 to 99 do begin aString [a] := 'Stringwert '+ a.ToString; end; Messagebox.Show ( 'Schätzwert für die reservierte Anzahl von Bytes nach Arraybefüllung : ' + gc.GetTotalMemory(false).toString); gc.Collect; Messagebox.Show ( 'Schätzwert für die reservierte Anzahl von Bytes nach GC.Collect : ' + gc.GetTotalMemory(false).toString); end; |
Das und noch ein paar mehr Beispiele gibt's ab Oktober in meinem Buch 'Delphi goes .NET' :wink:
(Falls ich's vor meinem Urlaub noch fertig bekomme... die Chancen stehen gut... :D
wenn nicht, zieht mir der Verlag das Fell über die Ohren...)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!