AGB  ·  Datenschutz  ·  Impressum  







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

Delphi 5 und Garbage Collection?

Offene Frage von "dango"
Ein Thema von Icemanemp · begonnen am 23. Aug 2004 · letzter Beitrag vom 9. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Icemanemp

Registriert seit: 28. Mai 2004
Ort: immer dem Pfeil nach --->
26 Beiträge
 
Delphi 5 Enterprise
 
#1

Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 11:36
Hi,

Ich hab versucht das Thema über die Suche zu finden, aber da hat scheinbar noch keiner danach gefragt?!
Ich war zufällig bei einem Projekt beschäftigt und musste ein paar Projektoptionen (Compiler) verändern. Dann bin ich auf die Hilfe um über die verfügbaren Optionen mehr zu erfahren. Dort ist mir folgender Eintrag aufgefallen:

Zitat:
Huge-Strings

Ist diese Option aktiviert, entspricht das Schlüsselwort string dem neuen Typ AnsiString, der von der Garbage Collection berücksichtigt wird. Andernfalls definiert string den Typ ShortString. Diese Option entspricht dem Schalter {$H}.
Ich dachte erst "He, Delphi 5 und Garbage Collection? Ich dachte das wäre ein Feature von .Net und Java?!", aber nun wollte ich mehr wissen und deshalb frage ich hier nach. Kann es sein das Delphi einfach Datentypen über diesen Garbage Collector "zerstört" und erst Objekte ab .Net mit dem Garbage Collector zerstört werden oder ist das beschrieben Garbage Collection hier etwas ganz anderes?

Danke für eure Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 11:38
Arrays und Records werden für dich von Delphi verwaltet. Objekte muss man selber behandeln. (Und Strings sind Arrays.)

gruss,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#3

Re: Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 14:04
Ich halte von garbage collections generell ueberhaupt nichts, das regt meiner meinung nach nur zum schlechten programmieren an, anstatt die qualitaet des codes zu verbessern. Wuerde daher grundsaetzlich davon abraten, selbst wenn z.b. .NET solche "features" bieten.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#4

Re: Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 14:56
ja klar. und jeden integer den du brauchst auch wieder einzeln freigeben...

da sag ich: nein danke.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 14:59
Problem 1) Bei .NET kommst du einfach nicht drum herum. Das ist drin, und ende

Problem 2) Die wenigsten Programmierer kommerzieller Software arbeiten 100% sauber. Können sie oft auch garnicht, da der Zeitdruck immens ist. Somit ist Garbabecollection allein schon ein wirtschaftlicher Vorteil!

Ich mag's ehrlich gesagt auch nicht. Ich weiss lieber direkt wann und wo welches Objekt nicht mehr existiert. Auch die Idee der Zwischenkompilate missfällt mir irgendwie, auch wenn .NET ja im Gegensatz zu Java noch sehr performaten Code erzeugt. Aber man verliert einfach die Kontrolle im Detail
Aber es spricht wohl scheinbar zu viel für diese Systeme, als dass mein "Unwohlsein" dabei irgendetwas an dieser Richtung ändern könnte

\\edit: @nailor: Da finde ich die Mischung in Delphi gerade richtig! Einfach Typen automatisch, aber Objekte manuell
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#6

Re: Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 15:01
Zitat von nailor:
ja klar. und jeden integer den du brauchst auch wieder einzeln freigeben...

da sag ich: nein danke.
Ihr redet hier von unterschiedlichen Dingen. Wenn du in deinem proceduren - var - Block einen Integer allocierst wird dieser danach wieder freigegeben. Das ist aber keine Garbage-Collection.

Garbage-Collection wie sie .net oder Java implementiert haben, ist das entfernen von nicht mehr verwendeten Variablen(Speicherbereichen).
Dies wird z.B. von einem Extrathread durchgeführt der die ganze Zeit läuft und nichts anderes tut als nach Speicher zu suchen, auf den keine Referenz mehr vorhanden ist.

Kostet CPU-Time und fördert einen schlechten Programmierstil, halte ich auch nicht viel von.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#7

Re: Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 15:04
Zitat von dizzy:
Problem 1) Bei .NET kommst du einfach nicht drum herum. Das ist drin, und ende
Erm.. Du kannst im Dispose Methode eines .NET Objektes selbstverständlich alles selber Freigeben. Das ist u.U. sogar wichtig, wenn es irgendwo auf die Reihenfolge ankommt.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 15:20
Zitat von Phoenix:
Zitat von dizzy:
Problem 1) Bei .NET kommst du einfach nicht drum herum. Das ist drin, und ende
Erm.. Du kannst im Dispose Methode eines .NET Objektes selbstverständlich alles selber Freigeben. Das ist u.U. sogar wichtig, wenn es irgendwo auf die Reihenfolge ankommt.
Was echt? Ich hab mit .NET bzw. D8 noch nicht gearbeitet, nur drüber gelesen. Und bisher klang das so wie es bei Java auch gemacht wird. Einfach den Pointer auf NULL bzw. NIL setzen, und der GC gibt dann irgendwann wenn's passt den Speicher frei. Aber wenn .NET das auch manuell zulässt, dann
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#9

Re: Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 15:24
Jo, das geht freilich auch.

Aber wenn Du wie gesagt u.U. ein Objekt zwingen vor einem anderen freigeben muss (z.B. Cursor auf eine Datenbanktabelle vor der Datenbankconnection, da sich diese sonst nicht schliessen lässt etc.) dann kannst Du wie gesagt im Dispose diese Dinger eben auch in der richtigen Reihenfolge explizit zerstören lassen.

Best of both worlds sozusagen
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Icemanemp

Registriert seit: 28. Mai 2004
Ort: immer dem Pfeil nach --->
26 Beiträge
 
Delphi 5 Enterprise
 
#10

Re: Delphi 5 und Garbage Collection?

  Alt 23. Aug 2004, 16:01
Also wie von mir vermutet ist die Antwort auf meine Frage jetzt:

"Einfache Datentypen verwaltet Delphi und Objekte muss ich als Programmierer selbst verwalten!" ?
Also wird das Garbage Collection bei Delphi 5-7 und ältere Versionen natürlich auch nur auf einfache Datentypen angewendet. (Klar ist es ja das erst mit Delphi 8 und .Net Garbage Collection bei Objekte funktionierte). Ist so die Antwort?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:27 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