Der Martin: Windows-API: Speicherverbrauch der laufenden Anwendung abfragen

Beitrag lesen

Hallo zusammen,

ich brauche mal einen guten Tipp von einem routinierten Windows-Programmierer. Vielleicht genügt schon ein hilfreiches Stichwort für die Suche.

Ich habe eine selbst entwickelte Windows-Applikation, die vor allem Messdaten aus externen Quellen erfassen und protokollieren soll. Die Anwendung ist in Plain Vanilla C geschrieben und nutzt ausschließlich das Windows-API, ohne externe Bibliotheken oder Frameworks zu brauchen (und das möchte auch gern so bleiben). Dabei mache ich ausgiebig Gebrauch von dynamischer Speicherreservierung mit GlobalAlloc() und GlobalFree().

Von einem Nutzer kam nun der Vorschlag, ob ich nicht in der Statuszeile live anzeigen könnte, wieviel Arbeitsspeicher das Programm aktuell belegt. Ich fand die Idee cool und dachte, hey, mach ich gerne. Gestern habe ich dann viel Zeit mit dem Suchen in der Microsoft-Doku verbracht, aber nichts Passendes gefunden. Mir schwebt eine API-Funktion vor, die mir als Ergebnis die aktuelle Speicherbelegung durch die aufrufende Anwendung liefert, oder meinetwegen auch eine Struktur, die unter anderem diesen Wert enthält.

Gibt's da vielleicht auch was von Ratioph Microsoft?

Falls sich nichts einfach Anwendbares findet, mach ich mir vielleicht einfach je einen Wrapper für GlobalAlloc() und GlobalFree(), in dem ich nach der Reservierung bzw. vor der Freigabe die tatsächlich von Windows belegte Speichergröße mit GlobalSize() abfrage und selbst mitzähle. Klingt aber irgendwie nach Holzhammermethode, und hat außerdem den Schönheitsfehler, dass der statisch durch Code- und Datensegment belegte Speicher nicht mitzählt.

Danke schon mal vorab für jeden kommenden Denkanstoß.

Live long and pros healthy,
 Martin

--
Fische, die bellen, beißen nicht.