Speicherbegrenzung für Klassen
-
es gibt je nach os und compiler restrictionen.
zb ist der stack unter windows normalerweise nur 1mb groß, dh ein
char foo[1024*1024];
geht nicht mehr. Dies ist aber normalerweise bei den compiler optionen einstellbar, die maximalgrenze ist bs abhängig.
anders siehts aus, wenn du den heap benutzt, das ist rein bs abhängig, unter windows liegt das oberste maximum aber bei 4gb, einen größeren wert kann man nichtmehr mithilfe von zeigern ansprechen.
weitere restriktionen gibt es aber nicht.
-
otze schrieb:
anders siehts aus, wenn du den heap benutzt, das ist rein bs abhängig, unter windows liegt das oberste maximum aber bei 4gb
Windows (32-Bit; 2000/XP) teilt einem einzelnen Prozeß allerdings maximal 2GB Speicher zu; Win98 AFAIK etwa 256 MB.
Moritz
-
ah alles klar
Dann muss ich eine begrenzte Menge an Daten haben...... was wäre aber jetzt wenn ich 8 GB Informationen hätte ?
Würden erst die ersten 4 GB und dann die nächsten 4 GB bearbeitet werden ?
-
du brauchst ja nie alle 8gb an infos gleichzeitig, nur das was benötigt wird liest du in den arbeitsspeicher
-
cHillb3rT schrieb:
Dann muss ich eine begrenzte Menge an Daten haben...... was wäre aber jetzt wenn ich 8 GB Informationen hätte ?
Und du alle 8GB gleichzeitig bearbeiten willst?
Dann sollte der User aber mal ordentlich RAM haben, sonst swappst du dich tot, bzw. kommst in eine out-of-memory situation, weil niemand soviel Swap einrichtet
Wie glaubst du, läuft das bei einer DVD ab, die abgespielt wird. Das sind 7GB Daten oder so, die der Film hat.
einfach nur die Daten im Speicher halten, die man wirklich braucht. Alles andere wäre so extrem lahm, dass man es vergessen kann. Sobald du ein paar 100MB im SPeicher halten willst, würde ich mir überlegen ob das wirklich nötig ist. denn wenn der PC zum swappen anfängt, steht die Anwendung still... und das wollen wir nicht, oder?
-
Wenn man 8GB gleichzeitig benötigt, dann hat man auch Rechner und Betriebssysteme, die das unterstützen. Auch Windows sollte auf Itanium Maschinen locker 8GB an einen Prozess geben können.
-
Ponto schrieb:
Wenn man 8GB gleichzeitig benötigt, dann hat man auch Rechner und Betriebssysteme, die das unterstützen. Auch Windows sollte auf Itanium Maschinen locker 8GB an einen Prozess geben können.
Tja _wenn_. Nur idR braucht man das nicht. Bedenke: selbst wenn du 8GB RAM hast, dann ist das zu wenig, weil ja noch andere software laufen muss
meistens ist es dennoch besser nicht alles im RAM zu halten (Ausnahmen bestätigen die Regel)
-
Shade Of Mine schrieb:
Ponto schrieb:
Wenn man 8GB gleichzeitig benötigt, dann hat man auch Rechner und Betriebssysteme, die das unterstützen. Auch Windows sollte auf Itanium Maschinen locker 8GB an einen Prozess geben können.
Tja _wenn_. Nur idR braucht man das nicht. Bedenke: selbst wenn du 8GB RAM hast, dann ist das zu wenig, weil ja noch andere software laufen muss
meistens ist es dennoch besser nicht alles im RAM zu halten (Ausnahmen bestätigen die Regel)
Da hast du Recht, aber mir sind schon Anwendungen untergekommen, die 30 GB oder mehr benötigen. Die laufen dann aber auch auf entsprechenden Rechnern.
-
Ponto schrieb:
Da hast du Recht, aber mir sind schon Anwendungen untergekommen, die 30 GB oder mehr benötigen. Die laufen dann aber auch auf entsprechenden Rechnern.
was sind das für anwendungen? welche für web-server, die tausende clients und tausende accounts verwalten müssen?
sonst kann ich mir das gar nicht vorstellen
-
Lars Hupel schrieb:
Ponto schrieb:
Da hast du Recht, aber mir sind schon Anwendungen untergekommen, die 30 GB oder mehr benötigen. Die laufen dann aber auch auf entsprechenden Rechnern.
was sind das für anwendungen? welche für web-server, die tausende clients und tausende accounts verwalten müssen?
sonst kann ich mir das gar nicht vorstellenZum Beispiel benötigen viele Programme zur Verdrahtung von VLSI-Designs bei entsprechend großen Instanzen sehr viel Speicher. Da dabei wahlweise auf die gesamten Chipdaten zugegriffen wird müssen diese im Hauptspeicher liegen. Ansonsten dauert ein Lauf zulange.