1.4k Aufrufe
Gefragt in WindowsXP von
Hallo zusammen,
Ich habe mir ein C-Prog zur berechnung von Primzahlen und Primfaktorzerlegung geschrieben.
Das Problem ist es braucht extrem viel Speicher.
Angefordert wird der Speicher über die Funktion malloc() bis sie dann iwann 0 als Rückgabewert liefert.
Dachte immer das WinXP automatisch sobald kein Speicher mehr im RAM ist die Auslagerungsdatei nutzt tuts aber nich.
Also hab ich mir ne eigene Funktion geschrieben die eine Auslagerungsdatei anlegt über die Funktion fopen().
Jedoch scheint es für fopen() auch kein platz mehr zu geben weil auch sie 0 liefert.

Meine Fragen:
-Ist der Speicherplatz für ein einzelnes Programm begrenzt?
-Zählt die Auslagerungsdatei mit zum Speicher, so das RAM und Auslagerung zusammen max 4GB betragen könen?
-Warum zeigt der MS-Taskmanager direkt zu beginn eine wachsende Auslagerungsdatei an? macht der nicht zuerst den RAM voll?
-Kann man das iwie steuern ab wann die Auslagerung genutzt wird? Wäre schon nützlich das die ersten angeforderten Speicherplätze im RAM liegen und erst wenn der voll ist ausgelagert wird, da die ersten Speicherstellen am häufigsten gebraucht werden.

Benutze WinXP SP3 32bit

5 Antworten

0 Punkte
Beantwortet von
-Ist der Speicherplatz für ein einzelnes Programm begrenzt?
Irgendwann schon, spätestens, bis die Swapdatei (bei entsprechender Einstellung) so groß wird, dass Sie die Betriebssystempartition sprengt... .-)

-Zählt die Auslagerungsdatei mit zum Speicher, so das RAM und Auslagerung zusammen max 4GB betragen könen?
Wie kommst Du auf 4GB? Das hängt ganz von Deinem physikalischen RAM und davon ab, wie viel Kapazität Du der Auslagerungsdatei zugebilligt hast (sofern nicht die Windowsgrundeinstellung arbeitet).

-Warum zeigt der MS-Taskmanager direkt zu beginn eine wachsende Auslagerungsdatei an? macht der nicht zuerst den RAM voll?
Nein, das ist so normal, Windows swappt recht großzügig von Anfang an auf der Festplatte herum, was man erweitern und begrenzen kann, aber nicht gänzlich unterbinden sollte, da manche Programme darauf angewiesen sind (was ja nun genau Dein Thema ist, Du solltest es also wissen)

-Kann man das iwie steuern ab wann die Auslagerung genutzt wird?
Soviel ich einmal gelesen hatte, lässt sich das Paging entweder ausschalten, oder es wird von Windows nach dessen Regeln gesteuert bzw. es lässt sich bei Letzterem nicht individuell einstellen. Ich mache das auf meine Weise mit (für XP rel. üppigen) 4GB DDR1-RAM, von denen sich XP mit ca. 3,5GB maximal bedienen kann, der Rest ist für eine superschnelle 1. Swapdatei vorgesehen, während eine 2. größere Swapdatei fester Größe (damit sie nicht das Laufwerk fragmentiert) auf einer 2. HDD untergebracht ist. Ich habe herausgefunden, dass auf Letztere immer nur dann zugegriffen wird, wenn die 500MB der Ersten nicht reichen (da gibt es sicherlich noch jede Menge andere Lösungen, die man sich überlegen kann...)

MfG
0 Punkte
Beantwortet von
auf die 4gig komme ich weil man mit 32bit nicht mehr speicher adressieren kann.

danke für die antwort
wär ich ein member würd ich die gut bewerten

das doofe ist jetz haben sich ein paar andere fragen aufgetan
die stell ich aber unter einer andren gruppe
0 Punkte
Beantwortet von
Ist der Speicherplatz für ein einzelnes Programm begrenzt?


gibt compiler switches die auf ram einfluss nehmen. haste die beachtet?
0 Punkte
Beantwortet von ennok Experte (1.2k Punkte)
-Ist der Speicherplatz für ein einzelnes Programm begrenzt?


Ja, maximal kann ein Process 2GB RAM nutzen.

Es gibt zwar die Möglichkeit, das unter 32bit-Windows auf 3GB zu erhöhen, was allerdings wieder eine Änderung an den Boot-Optionen von Windows erfordert, weil das System standardmäßig auch nur 2GB des RAMs für Anwendungen reserviert. Das wiederum ist auch nicht ganz einfach, weil das System dann unter Umständen nicht stabil läuft. Des weiteren muss auch der Compiler diese Option unterstützen:

msdn.microsoft.com/de-de/library/wz223b1z.aspx

Im Endeffekt heißt das also: 2GB maximal pro Anwendung.
0 Punkte
Beantwortet von
welches betriebssystem ist denn für meine zwecke zu empfehlen?
wie siehts mit win7 oder linux aus?
...