Heap Size optimieren, welche Größe?

Hallo
Ich habe eine dll in Assembler geschrieben. Nun habe ich festgestellt, das automatisch recht große Werte für „Heap Size“ eingesetzt wurden.

Ich konnte den Wert mittels Linker-Option auf nahezu 0 verringern, und meine Frage ist nun:
Was verursacht einen Heapverbrauch, der größer als 0(Null) ist?
Ich fand HeapAlloc() und die C++ Ide und Laufzeitumgebung soll auch damit zu tun haben.
Wenn ich keine Funktion wie Heap Alloc verwende, brauch ich dann auch keinen(0) Heap?
Die dll ist ohne messageloop, nur ein paar Funktionen sind drin.

MfG
Matthias

Hallo Matthias,

der Umgang mit Speicher ist vom Compiler abhängig, daher lässt sich nichts allgemeingültiges sagen. 16-Bit-Windows-Programme hatten die Wahl, Speicher, der mit new usw. angefordert wurde, von einem lokalen Heap zu nehmen oder vom globalen Heap, was einfach der ganze übrige Speicher ist, seit der Umstellung auf 32bit wird aber meistens kein lokaler Heap mit fester Grösse mehr verwendet. Funktionen wie LocalAlloc werden aber natürlich vom System noch bedient, sonst würde alte Software nicht mehr laufen.

Im Compilerhandbuch müsste es einen Abschnitt „Speicherverwaltung“ geben, oder bei den Methoden zur Instantiierung von Objekten ist angegeben, wo der Speicher hergenommen wird. Auch für den Befehl, der die Heapgrösse definiert, müsste es einen Kommentar geben, vielleicht steht dort ja „nur aus Kompatibilitätsgründen“. Bei Delphi gibt es keine Angabe zur Heap-Grösse mehr, aller Speicher wird automatisch verwaltet. Es gibt zwar (glaube ich) noch einen lokalen Heap, der wird aber bei Bedarf vom System vergrössert.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Gruss Reinhard

Hallo auch
Vielen Dank für die Erläuterungen.
Der Grund für meine Unkenntnis war wohl, das „Heap“ wohl in den Linkeroptionen auftaucht, aber nicht im Assembler selbst benutzt wird.
Der Tip mit dem Handbuch war auch sinnvoll.
MfG
Matthias