AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Webinar FreeAndNil

Ein Thema von Rollo62 · begonnen am 24. Jun 2022 · letzter Beitrag vom 4. Jul 2022
Antwort Antwort
Seite 5 von 5   « Erste     345
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#41

AW: Webinar FreeAndNil

  Alt 30. Jun 2022, 15:51
Beim Aufruf von Free bzw. FreeAndNil musst Du nicht vorher auf Assigned oder nil prüfen, das tun die Methoden bereits intern, im Gegensatz zu Destroy. Zu Deinem Problem: falls das JSONObject Teil eines anderen JSON-Objekts ist, kümmert sich dies bereits um die Freigabe, mit der Zuweisung holst Du Dir dann lediglich einen weitere Referenz, aber keine neue Instanz. Rufst Du also hier Free auf einer bereits vom "Eltern-JSON" freigegebenen Referenz auf, knallt es natürlich, da hilft auch kein FreeAndNil.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#42

AW: Webinar FreeAndNil

  Alt 1. Jul 2022, 10:25
Die ganze Diskussion zeigt doch nur eines: Die einzige Strafe, die die Verwendung von FreeAndNil mit sich bringt ist ein missbilligender Blick des Kollegiums. Es gibt keine Performance Strafe, es gibt keine Fehler. Es ist alles gut. Und damit kann ich wunderbar leben.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#43

AW: Webinar FreeAndNil

  Alt 1. Jul 2022, 13:18
Es gibt keine Performance Strafe
Ganz kostenlos ist der Aufruf nicht, aber solange man das nicht in einer Schleife sehr oft aufruft, spielt das keine Rolle. Das try..finally Handling dürfte da ohnehin teurer sein.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#44

AW: Webinar FreeAndNil

  Alt 1. Jul 2022, 13:29
FreeAndNil hat doch kein Try-Finally drin?

Drum macht es ja eigentlich NilAndFree, im sich das Try-Finally zu sparen.



Einzig, wo es im FreeAndNil Probleme geben könnte, wenn im Destructor oder etwas darin Aufgerufenem oder anderem Freigegeben irgendwo auf diese (globale) Variable zugegriffen würde.
z.B. im OnDestroy der Form auf die Form-Variable, anstatt auf Self.

Hier ist die Variable ja schon vorher NIL und es würde dann knallen.


Genau aus dem Grund setzt Application.FormCreate schon vor dem Constructor/OnCreate die Variable, falls jemand beim Laden auf diese Variable zugreift.
und automatisch werden die FormVariablen nicht genilt, weswegen es dann beim Freigeben auch nicht mehr knallt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.449 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#45

AW: Webinar FreeAndNil

  Alt 1. Jul 2022, 14:05
FreeAndNil hat doch kein Try-Finally drin?

Drum macht es ja eigentlich NilAndFree, im sich das Try-Finally zu sparen.
Inwiefern spart FreeAndNil ein Try..Finally? Ich rufe FreeAndNil nämlich immer im Finally-Block auf. Also so:
Delphi-Quellcode:
  bla := nil;
  blub := TSomeObject.Create;
  try
    bla := TSomeOther.Create;

  finally
     FreeAndNil(bla);
     FreeAndNIl(blub);
  end;
Könnte ich da das Try..Finally irgendwie einsparen?
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#46

AW: Webinar FreeAndNil

  Alt 1. Jul 2022, 14:19
Achso, da ist es doch vom Tempo her egal, ob Free oder FreeAndNil.



Dachte du meinst das FreeAndNil selber, also

Delphi-Quellcode:
try
  blub.Free;
finally
  blub := nil;
end;
vs. das im FreeAndNil
Delphi-Quellcode:
temp := blub;
blub := nil;
temp.Free;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Jul 2022 um 14:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#47

AW: Webinar FreeAndNil

  Alt 4. Jul 2022, 06:14
Wird es das Webinar auf YouTube geben? Habe es leider verpasst.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
bnreimer42

Registriert seit: 26. Mai 2013
Ort: Erlangen, Franken
122 Beiträge
 
Delphi 12 Athens
 
#48

AW: Webinar FreeAndNil

  Alt 4. Jul 2022, 21:40
Schau mal auf https://blogs.embarcadero.com/freean...eloper-debate/

Da ist schon mal der Chat vom Webinar und der Satz:
Zitat:
This blog post will include the replay, slides, and more after the webinar.
Björn Reimer
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:41 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