2010-04-29 5 views
9

Wie kann ich sehen, wie viel Stapelspeicher derzeit in meiner Delphi-App verwendet wird? Ich hatte einen sehr seltsamen Fehler, der wie Stack-Probleme klingt. Ich möchte es dem Protokoll meiner App hinzufügen, um eine Vorstellung davon zu bekommen, wie viel Stapelplatz belegt ist/bleibt. Die Verwendung des Debuggers ist wahrscheinlich nicht so toll, da die Routine oft aufgerufen werden kann.Wie kann ich sehen, wie viel Stapelspeicher derzeit in meiner Delphi-App verwendet wird?

danke!

Antwort

11

Dies sollten Ihnen Ihre aktuelle Stack-Nutzung geben:

function CurrentStackUsage: DWord; 
asm 
    mov eax, fs:[4] 
    sub eax, esp 
end; 

Ich habe nicht die Spitze von meinem Kopf eine einfache Art und Weise erinnern Sie die max-Stack-Größe zur Laufzeit zu bekommen, aber Sie haben den Standard Wert in Ihren Linker-Optionen.

+0

danke für Ihre Antwort! Ich bin überrascht, wie klein der Wert ist, der dadurch zurückgegeben wird. es würde bedeuten, dass der Stapel bestenfalls ca. 1% benutzt wird. ist diese Anzahl in Bytes? –

+0

Ja, das gibt Bytes zurück. –

2

VMmap von SysInternals können Sie eine grafische Ansicht von jeder Art von Speicher von Ihrer Anwendung, einschließlich Stack verwendet. Es gibt Ihnen nicht die genaue Verwendung wie die Funktion in Per Larsens Antwort, aber es kann Ihnen helfen, die Speichernutzung in verschiedenen Phasen Ihrer Anwendung zu visualisieren.

+0

interessante App; Ich kann daraus etwas Neues lernen. Vielen Dank! –

Verwandte Themen