Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie viel RAM kann eine 32-Bit-Anwendung nutzen? (https://www.delphipraxis.net/175328-wie-viel-ram-kann-eine-32-bit-anwendung-nutzen.html)

Matze 12. Jun 2013 19:57

Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Hi zusammen,

ich vermute, der RAM wird vom Betriebssystem verwaltet (in meinem Fall Win7 32 Bit).

Dort kann ich max. ca. 3 GB RAM nutzen, logisch.

Ich habe nun eine Anwendung, die mir abschmiert, weil sie zu viel RAM benötigt. Kann es helfen, diese 32-Bit-Anwendung unter Win 7 64 Bit laufen zu lassen oder kann eine 32-Bit-Anwendung generell auf max. ca. 3 GB zugreifen unabhängig vom Betriebssystem?

Grüße
Matze

Bernhard Geyer 12. Jun 2013 20:03

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von Matze (Beitrag 1218415)
Ich habe nun eine Anwendung, die mir abschmiert, weil sie zu viel RAM benötigt.

Wirklich zu viel oder zu viel an einem Stück als durchgehender Speicherbereich.

Zitat:

Zitat von Matze (Beitrag 1218415)
Kann es helfen, diese 32-Bit-Anwendung unter Win 7 64 Bit laufen zu lassen oder kann eine 32-Bit-Anwendung generell auf max. ca. 3 GB zugreifen unabhängig vom Betriebssystem?

Normalerweis gehen nur 2GB. Nur unter Win64 (bzw. unter Win32 wenn es mit spezieller Option gestartet ist) kann eine entsprechend Compilierte Exe auch 3 GB verwenden.
Bei Delphi wäre die Option

Delphi-Quellcode:
{$SetPeFlags $20}
um die Exe 3 GB-Kompatible zu machen.
Siehe auch: http://stackoverflow.com/questions/7...64-application

Luckie 12. Jun 2013 20:20

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1218417)
Normalerweis gehen nur 2GB. Nur unter Win64 (bzw. unter Win32 wenn es mit spezieller Option gestartet ist) kann eine entsprechend Compilierte Exe auch 3 GB verwenden.

Nein, den Schalter gibt es auch schon unter 32-Bit. Allerdings recht es nicht nur die Exe damit zu kompilieren. Die Option muss auch in der Boot.ini aktiviert werden.

Noch mal von vorne. Unter 32-Bit hat ein Prozess einen Adressraum von 4GB. Davon kann er aber nur 2GB nutze3, da in die restlichen 2GB die Betriebssystemfunktionen eingeblendet werden.

Eie es genau unter 64-Bit aussieht kann ich nicht sagen. Aber ein 64-Bit Prozess sollte da entsprechend mehr zur Verfügung haben.

Matze 12. Jun 2013 20:23

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Hallo,

danke für die Antworten.

Puh das könnte auch ein zusammenhängender Speicherbereich sein.
Die Anwendung ist nicht von mir.

Ja diese Boot-Option habe ich bereits aktiviert.

Mich würde nur interessieren, ob sich der Aufwand lohnt, diese Anwendung auf einem Win 7 x64 laufen zu lassen. Also Win 7 neu aufzusetzen.
Kann das jemand von euch sicher sagen?

Grüße

Bernhard Geyer 12. Jun 2013 20:40

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von Luckie (Beitrag 1218419)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1218417)
Normalerweis gehen nur 2GB. Nur unter Win64 (bzw. unter Win32 wenn es mit spezieller Option gestartet ist) kann eine entsprechend Compilierte Exe auch 3 GB verwenden.

Nein, den Schalter gibt es auch schon unter 32-Bit. Allerdings recht es nicht nur die Exe damit zu kompilieren.

Hab ich das nicht geschrieben:gruebel:

Zitat:

Zitat von Luckie (Beitrag 1218419)
Die Option muss auch in der Boot.ini aktiviert werden.

und es müssen auch die ganzen Treiber damit zurecht kommen. Also lieber gleich Win64 kaufen als sich damit in 2013 herumärgern.

Zitat:

Zitat von Luckie (Beitrag 1218419)
Eie es genau unter 64-Bit aussieht kann ich nicht sagen. Aber ein 64-Bit Prozess sollte da entsprechend mehr zur Verfügung haben.

Viel mehr :-) Theoretisch so um die 2^64 Bytes :-)
Praktisch viel weniger das aktuelle Consumer-HW weder RAM noch HD/SSD-Technisch diese Grenze ausreizen kann.

Luckie 12. Jun 2013 21:58

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Aber wie heißt es so schön: Wenn eine Frage mit "wie viel" anfängt, dann macht man was falsch. Ich hatte noch nie ein Problem, dass ein Programm zu wenig Speicher hatte. Deswegen gehe ich davon aus, dass da eventuell nicht mehr benötigter Speicher nicht mehr freigegeben wird oder arrays falsch vergrößert werden oder so was in der Richtung.

jaenicke 12. Jun 2013 22:02

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von Matze (Beitrag 1218420)
Mich würde nur interessieren, ob sich der Aufwand lohnt, diese Anwendung auf einem Win 7 x64 laufen zu lassen. Also Win 7 neu aufzusetzen.
Kann das jemand von euch sicher sagen?

Heute lohnt es sich kaum noch ein 32-Bit Betriebssystem zu nutzen, sofern man wie im Normalfall genug RAM hat. Aber davon abgesehen kann ein 64-Bit System helfen, wenn das Programm nicht wirklich mehr als 2 GiB Speicher braucht. Wenn es nur um größere Speicherstellen geht, ist die Chance viel höher diese mit viel RAM unter 64-Bit zu bekommen. Dann muss der PC aber auch mit entsprechend Speicher bestückt sein, bei nur 4 GiB z.B. wird dir ein 64-Bit System auch nichts helfen.

Bernhard Geyer 12. Jun 2013 22:16

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von jaenicke (Beitrag 1218426)
Wenn es nur um größere Speicherstellen geht, ist die Chance viel höher diese mit viel RAM unter 64-Bit zu bekommen. Dann muss der PC aber auch mit entsprechend Speicher bestückt sein, bei nur 4 GiB z.B. wird dir ein 64-Bit System auch nichts helfen.

Dir sagt aber schon "virtuelle Speicherverwaltung" was?

Ob der Rechner nur 2, 4 oder 2000 GB hat ist sch*** egal im Bezug darauf ob man als 32-Bit Anwendung z. B. 500 MB an einem Stück anfordern kann.
Es kommt viel mehr auf die Installierten Tools/Treiber etc. an und ob die Entwickler von DLL's so "intelligent" in Ihren DLL's fest zu definieren das die möglichst an Adressen geladen werden die sonst frei wären.

Luckie 12. Jun 2013 23:10

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Öhm. Ich hatte früher 1GB in meinem 32-Bit Rechner. Wenn jeder Prozess 4GB zur Verfügung gestellt bekommt....fällt was auf? ;)

BUG 12. Jun 2013 23:36

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von Luckie (Beitrag 1218425)
Ich hatte noch nie ein Problem, dass ein Programm zu wenig Speicher hatte.

Das kommt ganz auf deine Anwendungen an: größere numerische Berechnungen, große Bilder/Videos und ordentliche Datenbanken können nicht genug Speicher haben.

Zitat:

Zitat von jaenicke (Beitrag 1218426)
Wenn es nur um größere Speicherstellen geht, ist die Chance viel höher diese [...] unter 64-Bit zu bekommen.

Das stimmt :-)
Zitat:

Zitat von jaenicke (Beitrag 1218426)
Dann muss der PC aber auch mit entsprechend Speicher bestückt sein, bei nur 4 GiB z.B. wird dir ein 64-Bit System auch nichts helfen.

Das stimmt nicht :(
Virtueller Speicher FTW!

Medium 13. Jun 2013 00:07

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Um es mal noch mit in den Raum zu werfen: Ein für 32 Bit kompiliertes Programm wird die 2GB (bzw. 3GB wenn mit der Option kompiliert) zumindest niemals überschreiten können. Auch auf einem Win64 nicht. Das Programm arbeitet immerhin dann mit 32 Bit Pointern. Wie soll es da mehr adressieren können? (Also mehr als die theoretischen 4GB, die es aber praktisch auch nicht bekommt.)

Die Meldunge, dass zu wenig Speicher da sei, kann jedoch auch andere Ursachen haben als einfach nur zu wenig RAM + Pagefile. Manche Resourcen sind unabhängig vom RAM begrenzt, z.B. in der GDI. Und bei genau der habe ich diese Meldung zumindest schon mal gesehen, ohne dass das RAM auch nur ansatzweise voll gewesen wäre. (Bitmaps können z.B. nicht größer als 65536x65536 Pixel sein wenn ich mich recht erinnere.) Vielleicht ist soetwas ja auch das Problem. Nachteil wäre, dass das Programm dann für deine gewünschten Daten schlicht ungeeignet wäre, da sich dann kaum noch etwas machen ließe. Zumindest wenn man die Soßen nicht hat.

Matze 13. Jun 2013 04:52

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Hallo,

also im TaskManager kann ich sehen wie der RAM-Verbrauch aufs Maximum ansteigt.

Unter Win 7 x64 würde ich auf 8 GB aufrüsten.
Es handelt sich um einen Compiler und der virtuelle Speicher juckt den leider reichlich wenig ...

Grüße

jaenicke 13. Jun 2013 05:08

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Es gibt viele Programme, die ausgelagerten Speicher nicht unterstützen, z.B. virtuelle PCs.

Also bei einem Compiler glaube ich eher nicht, dass das viel bringen wird. Denn da hat der ein massives Problem, wenn der so viel Speicher braucht würde ich mal sagen. :shock: Um welchen geht es denn? Einen großen bekannten?

hathor 13. Jun 2013 06:47

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Memory Limits for Windows Releases

http://msdn.microsoft.com/de-de/library/aa366778.aspx
.
4-Gigabyte Tuning

http://msdn.microsoft.com/de-de/library/bb613473.aspx

sx2008 13. Jun 2013 12:21

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Einen Rechner mit 4 GB RAM auszustatten ist ziemlich "blöd".
Installiert man Windows 32-Bit, dann kann man den Speicher nicht voll nutzen.
Installiert man Windows 64-Bit, dann bekommt man die Vorteile des 64-Bit Betriebssystem nicht richtig zu spüren.
Windows 64-Bit braucht per se schon für sich selbst mehr RAM weil alle Zeiger doppelt so groß sind. Zusätzlich schleppt das Betriebssystem auch noch die 32-Bit DLLs mit sich rum.
Das führt dazu, dass der Speicher trotzdem Mangelware bleibt.
Erst ab 6 oder 8GB fühlt sich Window 64-Bit wohl.

jaenicke 13. Jun 2013 12:33

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von sx2008 (Beitrag 1218465)
Windows 64-Bit braucht per se schon für sich selbst mehr RAM weil alle Zeiger doppelt so groß sind. Zusätzlich schleppt das Betriebssystem auch noch die 32-Bit DLLs mit sich rum.
Das führt dazu, dass der Speicher trotzdem Mangelware bleibt.
Erst ab 6 oder 8GB fühlt sich Window 64-Bit wohl.

Also bei mir verbraucht 64-Bit Windows nicht so besonders viel mehr RAM als 32-Bit. Das liegt im Bereich weniger hundert MiB.

Selbst mit mehreren Instanzen von Delphi und diversen anderen Tools sind bei mir unter 3 GiB belegt plus Cache. Windows 8 frisch installiert hatte in der 64-Bit Variante unter 1 GiB in Verwendung soweit ich mich erinnere, den genauen Wert weiß ich nicht mehr.

32-Bit Vista hatte ich mit 1 GiB RAM problemlos im Einsatz, 64-Bit Windows 7 auf 4 GiB auch.

Morphie 13. Jun 2013 12:37

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von sx2008 (Beitrag 1218465)
Einen Rechner mit 4 GB RAM auszustatten ist ziemlich "blöd".
Installiert man Windows 32-Bit, dann kann man den Speicher nicht voll nutzen.

Kleiner Einwand:
Die 4 GB könnte man als 2x2GB Riegel im Dual Channel betreiben. Man hätte somit 3,5GB nutzbaren Speicher im Dualbetrieb...
Die Alternativen wären doch:
4GB (3,5GB) im SingleChannel
2x1GB im DualChannel
1x2GB im SingleChannel
...
Macht für mich alles noch weniger Sinn als eben 4GB im DualChannel unter 32Bit.
Für mich wäre das also die optimale Konfiguration für 32Bit...

Bei 64Bit sieht das natürlich anders aus :D

cookie22 13. Jun 2013 12:50

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von sx2008 (Beitrag 1218465)
Erst ab 6 oder 8GB fühlt sich Window 64-Bit wohl.

Kommt wohl sehr drauf an was du da machen willst. Für einen normalen Büro PC + Compiler dürften 4 GB dicke ausreichen.

Wenn du mehrere VMs laufen hast kann das schnell mal 12-14 GB werden.

Matze 13. Jun 2013 21:01

AW: Wie viel RAM kann eine 32-Bit-Anwendung nutzen?
 
Zitat:

Zitat von jaenicke (Beitrag 1218437)
Einen großen bekannten?

Je nach Branche ja. Es geht um LabVIEW.

Meine EDVler haben mir nun ein Win 7 x64 mit 8 GB RAM zur Verfügung gestellt. Damit funktioniert's zum Glück jetzt.
Die RAM-Auslastung steigt auf bis zu 4,4 GB (Leerlauf belegt allerdings schon 1,7 GB).

Der Compiler ist meiner Meinung nach nicht vernünftig programmiert, wenn der so viel Speicher benötigt und nach dem Kompilieren nicht mal frei gibt. Erst dann, wenn die Entwicklungsumgebung komplett geschlossen wird.

Nochmals danke für die zahlreichen Antworten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz