Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Open und Savedialoge zu langsam

  Alt 14. Apr 2015, 11:21
Wenn ein Debugger an einem Programm hängt (egal ob es mit oder ohne Debugsymbole kompiliert), dann schaltet der Heap-Allocator (HeapAlloc/HeapFree) in den Debugmodus und verlangsamt sämtliche Speicher Allozierungen und Freigaben von allen Programm/DLLs mit Speichermanagern, die nicht wie FastMM auf VirtualAlloc basieren. Dazu zählt VisualC++'s malloc und natürlich die direkte Verwendug von HeapAlloc.

Dem kann man über die Umgebungsvariable _NO_DEBUG_HEAD=1 entgegenwirken. Aber das alleine hilft nicht. Der weit größere Zeitverbrauch kommt durch das Starten von Threads durch all die ShellExtensions. Dabei bremst der Debugger sehr stark aus. Vor allem der Debugger von Delphi/C++Builder, da er eine "WaitForDebugEvent => PostMessage an DebugWindow-Thread => WaitForSingleObject" Architektur hat, die zusätzlich Zeit verbraucht.
  Mit Zitat antworten Zitat