Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#55

AW: Delphi Starter Editionen am Start?

  Alt 30. Jan 2011, 09:29
Der Inline-Compiler (also der innerhalb der IDE) teilt sich mit der IDE deren Speichermanager.
Ja, und zwar den "virtuellen" Speichermanager von Windows (VirtualAlloc). Der Compiler ruft gerade nicht den (FastMM) Speichermanager auf, sondern besorgt sich den Speicher über VirtualAlloc, den er nie mehr zurückgibt. Das kann man ganz gut beobachten, wenn man eine Projektgruppe mit mehreren Projekten hat und diese von oben ab kompilieren lässt. Der Speicherverbrauch (committed pages) steigt immens an. Und nach dem Kompilieren und sogar nach dem Schließen der Projektgruppe bleibt der Speicher verbraucht. Der Compiler nutzt den selbst-alloziierten Speicher intern wieder, aber die IDE kann den nicht nutzen, da FastMM nichts von den reservierten Pages weiß.
Bei Delphi XE hat sich dahingehend was geändert, dass beim Schließen der Projektgruppe nun ein großer Teil des "Compiler-Speichers" freigegeben wird. Zumindest sieht es danach aus.
  Mit Zitat antworten Zitat