AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Garbage Collector - Delphi Prism

Ein Thema von Highttower · begonnen am 24. Jun 2009 · letzter Beitrag vom 24. Jun 2009
Antwort Antwort
Highttower

Registriert seit: 2. Jun 2009
Ort: Worms
88 Beiträge
 
Delphi 2010 Professional
 
#1

Garbage Collector - Delphi Prism

  Alt 24. Jun 2009, 11:57
Hallo zusammen,
ich hab ein kleines Problem, mit Delphi und der Frage: Hat Delphi Prism einen Garbage Collector, bzw. haben alle DOT-Netframework sprachen einen, oder ist das C#, J# usw. vorbehalten?

Aus dem PrismWiki geht das nicht ganz hervor, hier werden nur Klassen instantisiert aber nirgends freigeben, es findet sich lediglich der Hinweis beim Using-Statement:

Zitat:
...
Die using-Anweisung stellt sicher, dass bei ihrer Beendigung alle von gr verwendeten Ressourcen freigegeben werden, auch wenn während der Ausführung des Blocks ein Fehler auftrat. Das ist wichtig, weil die Klasse Graphics unverwaltete Ressourcen verwendet, die nicht automatisch vom .NET-Framework freigegeben werden können.
...
Ich hab mal Google bemüht und bin dabei auf einen Blog gestoßen der sich mit Delphi (Prism) beschäftigt und der spannenden Frage

Zitat:
"Why doesn't Delphi have garbage collection?"
In den Kommentaren dazu findet man, dann den verweiß darauf das Delphi mit den Interfaces eine Art Garbage Collector besitzt, aber das ist auch nicht die Antwort auf meine Frage. -.-

Wie schon oft hier im Forum erwähnt, komm ich aus der C++ Ecke, da mach ich mir über sowas keine Gedanken, wenn ich da irgendwas mit "new" mallociere dann geb ich das mit "delete" nach Gebrauch auch wieder frei.

Wäre schön wenn mir jemand Licht in den dunkeln Tunnel bringen würde,

Tobi

EDIT:

Ein Test Programm mit
Delphi-Quellcode:
while true do
    k := new TKlasse1
wird nicht größer allerdings hab ich hier den Complier in verdacht, der mir das ganze einfach weg optimiert
Tobi
Rechtschreib und Semikolion Fehler dürfen behalten werden.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Garbage Collector - Delphi Prism

  Alt 24. Jun 2009, 12:02
Zitat von Highttower:
ich hab ein kleines Problem, mit Delphi und der Frage: Hat Delphi Prism einen Garbage Collector, bzw. haben alle DOT-Netframework sprachen einen, oder ist das C#, J# usw. vorbehalten?
Der Garbage-Collector ist bestandteil von .NET und ist damit für alle für alle .NET-Sprachen gültig. Delphi.Prism braucht keinen eigenen Implementieren.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#3

Re: Garbage Collector - Delphi Prism

  Alt 24. Jun 2009, 12:11
Ergänzung zu Bernhards Hinweis: Der GC arbeitet zur Laufzeit und hat schon deshalb nichts mit einer der Programmiersprachen zu tun. Nach dem Compilieren gibt es (eigentlich) keine Unterschiede mehr zwischen dem, was die eine oder die andere Programmiersprache erzeugt hat. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#4

Re: Garbage Collector - Delphi Prism

  Alt 24. Jun 2009, 12:36
Dein sog. Testprogramm zeigt doch eigentlich nur, dass der GC funktioniert... du weist die neue Instanz immer derselben Variable zu, daher werden alle älteren Instanzen nicht mehr referenziert und können durch den GC zerstört werden.

Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Highttower

Registriert seit: 2. Jun 2009
Ort: Worms
88 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Garbage Collector - Delphi Prism

  Alt 24. Jun 2009, 12:43
Zitat von Dust Signs:
Dein sog. Testprogramm zeigt doch eigentlich nur, dass der GC funktioniert... du weist die neue Instanz immer derselben Variable zu, daher werden alle älteren Instanzen nicht mehr referenziert und können durch den GC zerstört werden.

Dust Signs
Oder von der Compiler Engiene vorher erkannt werden und weg optimiert
Tobi
Rechtschreib und Semikolion Fehler dürfen behalten werden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz