Frage

Ist es möglich, in Zukunft eine automatische Garbage Collector in Delphi haben, zu denken? Es gibt viele Anwendungen, bei denen eine hoch detaillierte Steuerung auf, wenn ein Objekt zu befreien ist nicht so wichtig, und es ist nur eine zusätzliche Sache zu kümmern sich um.

Für solche Anwendungen eine Art Garbage Collector haben, dass Arbeiten wie ein Java interessant wären.

Es könnte in den Projektoptionen eingestellt werden.

Wird dies möglich oder nicht?

Hinweis : Ich meine nicht manuell zu erstellen, wie erklärt hier , ich meine wirklich eine Delphi-Funktion.

Anders ausgedrückt : ist es möglich, FastMM gesetzt als Garbage Collector zu handeln

War es hilfreich?

Lösung

Garbage Collection ist möglich in C und C ++ , so sehe ich keinen Grund, warum Delphi nicht auch eine solche Funktion haben. Wenn Sie Ihre Finger kreuzen und lange genug warten, Delphi könnte Garbage Collection erhalten. Ich sehe es nicht als Priorität für Embarcadero, though.

Sie können FastMM nicht gesetzt als Garbage Collector zu handeln, weil FastMM nicht Garbage Collection tun, so gibt es nichts zu setzen. Delphi hypothetische Garbage-Collection-Funktion Zukunft würde wahrscheinlich mit dem Speichermanager zusammenarbeiten müssen, so dass, wenn ein solches Merkmal jemals existiert, und FastMM ist immer noch der Speicher-Manager zu dieser Zeit, dann FastMM wird wahrscheinlich einige Einstellungen gewinnen.

Andere Tipps

Es gibt viele Anwendungen, bei denen eine hoch detaillierte Steuerung auf, wenn ein Objekt zu befreien ist nicht so wichtig, und es ist nur eine zusätzliche Sache zu kümmern.

Ich glaube, es gibt fast keine solche Anwendungen. Die meisten der Zeit Sie denken, benötigen keine Kontrolle, wenn Ihre Objekte zerstört werden, sind Sie möglicherweise einen Fehler eingeführt werden.

Nun gibt es in der Tat Fälle, wenn bestimmt Objekte können sicher später ignoriert werden, um mit durch automatischen Kollektor behandelt werden. Aber denken Sie daran, dass Sie dies durch denken brauchen alle Objekt Sie planen, auf nicht manuell zu zerstören. Was ist, wenn es einige Sperren hält? Was passiert, wenn es einige Dateien öffnen, vielleicht in anteil verweigert Modus hat?

Es gibt nicht viel von einem Vorteil in Sie vom Denken befreit über jedes Objekt zu zerstören, wenn sicher zu programmieren, müssen Sie noch darüber nachdenken, jedes Objekt zu zerstören.

Der Zweck des Müllsammlers ist nicht frei Programmierer von diesen Sachen durch Sehen. Es ist ein bisschen auf der Referenzzählung zu speichern und versuchen / schließlich nennt.

Sie haben sowohl Vor-und Nachteile mit Garbage Collection i Sache delphi ist gut, auch ohne GC (Garbage Collector). sogar delphi Anwendungen weniger Speichergröße eingenommen haben, als verwaltete .net-Anwendungen, verlangsamen einige Male Garbage Collection auch den Prozess, weil es die unerwünschten Ressourcen finden hat, bestätigen, ob sie wieder benötigt werden, und löschen it.if es wieder benötigt es wieder zu laden, hat (app wird langsam) oder ein Fehler so delphi ist gut ohne GC manuell zu befreien ist gut für einen professionellen Programmierer

dauerten Versionen von delphi mit RTTI kommen (dies ist auch ein Grund für die große Größe von Apps) Ich denke, rtti (Runtime Type Information), um uns in Zukunft helfen kann. weil es einige Informationen über den Prozess los halten, so denke ich, ist möglich, in Zukunft eine ähnliche Funktion wie Garbage Collector sein kann, aber nicht sicher,

aber delphi für dot net 2007 und anderen alten delphi dot net haben Garbage Collector + vcl aber jetzt veraltet (der Garbage Collector auch arbeiten nicht 100% gut)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top