Zitat von
Muetze1:
1. StackFrames sind default mässig aus
Das interessiert die Compiler-Magic nicht. Die richtet dir einen try/finally-Block ein um ein dynamisches Array zu referenzieren und zu dereferenzieren bzw. freizugeben.
Zitat:
2. Das Initialize() und Finalize() bringt bei meinm Haupt-Delphi 5 nachweisbar weniger Speicherlecks
Initialize und Finalize werden nur benötigt, wenn man sich um die Speicherreservierung und -freigabe selbst kümmert. Also mit GetMem/AllocMem/ReallocMem und FreeMem arbeitet anstatt mit SetLength() (dyn. Array, String) und New/Dispose (records).
Zitat:
und vor allem wird dadurch der Speicher wieder freigegeben.
Delphi 5 hatte einige Bugs, aber der wäre mir neu. Bei falscher Anwendung von Initialize und Finalize kann es zu Schutzverletzungen kommen, da die beiden Funktionen die Speicher bearbeiten (mit Nullenfüllen, gültige Daten voraussetzen) und dyn. Arrays und Strings refernzengezählt werden.