Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

AW: Liegen lokale Klassen auf dem Stack?

  Alt 7. Dez 2017, 18:26
Damit der Performanceunterschied groß genug ist um ihn zu merken muss es aber entweder um große Mengen von Objekten gehen (Achtung, es wird eng auf dem Stack!) oder die Prozedur wird sehr oft in sehr kurzer Zeit aufgerufen, sodass sich der Unterschied irgendwann aufsummiert und bemerkbar wird.
Reicht schon, wenn du eine Hand voll Objekte bei jedem Aufruf erstellst und am Ende wieder freigibst (wobei man fairer Weise sagen muss, dass der Delphi Memory Manager ja zumindest schonmal versucht die Context Switches in den Kernel zu minimieren, indem ganze Pages reserviert und "per Hand" verwaltet werden; dennoch ist die Verwaltung eines Heaps ein ziemlicher Overhead). Dass Performanceunterschiede erst bei einer gewissen Laufzeit relevant werden, ist ja eine generelle Tatsache.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat