Datenmengen?
-
Hi, ich habe eine Frage und zwar wann man Objekte auf dem Heap speichern soll also genauer ab welcher Größe, man liest imemr nur ja sobald man große Datenmengen hat sollte man diese auf den Heap speichern, doch ab wann sind es große Datenmengen? Das liest man nie...also ich wäre froh wenn jem. mir eine Art Richlinie sagen könnte

cu
-
Ich glaube eine Richtlinie gibt es da nicht. Es sei am besten wohl einfach mal das folgende gesagt:
Der Stack ist meistens zwischen 1 - 4 Megabytes gross. Am besten geht man von einem einzigen Megabyte aus. Auf dem Stack werden auch die Funktionsaufrufe, Rückgabewerte usw. abgewickelt, also das fordert alles auch noch Speicher.Temporäre Variablen kommen auf den Stack, Variablen die längerfristig existieren sollen kommen auf den Heap. Sobald eine Variable auf dem Stack gefahr läuft, den Stack zu sprengen, gehört sie auf den Heap.
Kommt bei mir allerdings selten vor, da solch grosse Variablen meistens nicht nur temporär benutzt werden. Oder es wird ein zur Laufzeit variabler grosser Speicher benötigt, dann muss man sowieso den Heap verwenden.Grüssli
-
Eigentlich hantiere ich immer mit Datenmengen, deren Größe ich zur Kompilierzeit nicht weiß - allein deshalb setze ich dann schon STL-Container ein, die mir ja alles auf den Heap werfen.
Ich persönlich würde nicht mehr als 10 KB oder so auf den Stack werfen
-
@__Frage
Das kommt sehr drauf an, allgemein kann man da nicht viel dazu sagen.
Es gibt Fälle wo 100KB oder mehr noch total unbedenklich sind und es gibt Fälle wo 1KB schon viel zu viel ist.
-
Hey,
Danke für eure Antworten, war alles sehr sehr hilfreich...Vielen dank nochmals ...
Cu