Frage

Ist das ein VS2005 C ++ Compiler-Flag wie die Xmx ??? M Java-Flag, so kann ich die Heap-Größe meiner Anwendung unter Windows begrenzen.

Ich brauche die Heap-Größe zu begrenzen, so dass ich den Speicher füllen kann die aktuellen freien Speicher, um herauszufinden. (Der Code läuft auch auf einem Embedded-System, in dem das ist die beste Methode, um die Speichernutzung zu erhalten)

War es hilfreich?

Lösung

Sie können schauen wollen, ob der gflags-Dienstprogramm (in den Windows-Debugging Tool) dies tun kann. Es kann mit dem Haufen von nativen Anwendungen viele andere interessante Dinge tun.

Andere Tipps

Sie können die Speichergröße für das Programm festgelegt, indem die Größe bei der Einrichtung:

Linker -> System -> Heap Reserve Size

Es kann auch bei der Compiler-Befehlszeile mit /HEAP:reserve eingestellt wird

Die Speichergröße hängt von dem allocator verwendet. Es könnte auch einiger Windows-API-Aufruf sein, dass die Größe des Speichers begrenzt ein Prozess zuordnen kann, aber ich bin mir nicht bewusst ein und ich fühle mich nicht wie jetzt, es zu suchen, sorry. Aber im Allgemeinen, wenn Sie Ihre eigene allocator schreiben (vielleicht auch nur umschlingen den Compiler bereitgestellten malloc() oder new Operator) Sie künstlich die Heap-Größe auf diese Weise begrenzen kann.

Alternativ, wenn Sie Ihre eigene allocator haben, auch nur, wenn ein Wrapper, Sie verfolgen, wie viel Speicher halten kann, hat insgesamt zugeordnet. Wenn Sie den zur Verfügung stehenden Betrag kennen, können Sie nur einige Subtraktion tun und mit dem Erhalten des Gesamt erfolgen. Vielleicht haben Sie auch dann Fragmentierungsstatistik erhalten werden können, wie größte freie Block.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top