AGB  ·  Datenschutz  ·  Impressum  







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

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.625 Beiträge
 
Delphi 12 Athens
 
#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.800 Beiträge
 
Delphi 12 Athens
 
#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.648 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
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.623 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
44.184 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;
$2B or not $2B

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.295 Beiträge
 
Delphi 12 Athens
 
#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
126 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
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 18:09 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