RAM Speicherplatz ausgeben
-
Hallo,
gibt es eine einfach art den Platz im Hauptspeicher ausgeben zu lassen?
Ich bräuchte sowas um zwischen zwei methoden zu switchen - falls nur noch so und so viel platz da ist nimm die langsamere aber die speichereffizientere....danke
-
Das ist Platformspezifisch. Die WinAPI bietet da diverse Funktionen:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/globalmemorystatus.asp
grüße
-
argh ja sorry meinte unter unix/linux
-
Nimm immer die gleiche Methode, wenn du nicht im GB-Bereich Speicher fressen willst kannst du das OS auslagern lassen, das ist heute kein Problem mehr.
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
@ Kenner des RAMs
danke für das posting aber ich habe ehrlich gesagt nicht verstanden was du mir damit sagen willst
-
Von wieviel MB Speicher reden wir denn hier? Du weißt, dass das OS autmatisch auslagern (sofern Speicher für Auslagerung vorhanden ist).
Erst wenn das fehlschlägt solltest du deine Variante wechseln, also etwa so (ist dann auch Standard c++):
try { char* speicher = new char[ganz viel]; /* variante mit viel speicher */ delete[] speicher; } catch(const std::bad_alloc& exception) { /* variante mit weniger speicher */ } catch(...) { /* Fehlerbehandlung */ delete[] speicher; }
Keine Garantie auf Richtigkeit und Grad des Sinnes.
-
vielen dank...
vielleicht beschreib ich ein wenig genauer - nur damit ich kein schwachsinn implementiere:
Das folgende ist so nur ein Beispiel also macht überhaupt keinen Sinn.
Nehmen wir mal an ich lade ein Bild in den speicher und muss für jedes Pixel ein grosses array speichern.
Für Bilder die eine dimension von 1000x1000 haben soll methode1 angewandt werden (weil speicher fressend aber schneller), und für Bilder die grösser als das sind eben methode2 (weil weniger speicher fressend dafür langsamer).Ginge das so mit dem try - catch Block?
Naja auf der aktuellen Maschien sinds "nur" 512 MB
Oder habe ich da so keine sinnvolle Chance da Auslagerung des OS?
Oder versteh ich da gar was falsch?
-
Mati schrieb:
Oder habe ich da so keine sinnvolle Chance da Auslagerung des OS?
Hast du nicht. Bis da bad_alloc kommt, ist eh schon alles im Eimer.
Mach lieber eine Option im Programm, wo der Benutzer einstellen kann ob er lieber weniger Speicherverbrauch oder bessere Performance haben will.
Das anhand des aktuellen Speicherverbrauchs selbst einzustellen, halte ich für keine gute Idee.
-
DrGreenthumb schrieb:
Das anhand des aktuellen Speicherverbrauchs selbst einzustellen, halte ich für keine gute Idee.
da kann ich dir nur zustimmen.
Aber nur um die Frage zu beantworten: Es gibt keinen standardisierten Weg unter Unix/Linux. Für Linux solltest du dir die "Datei" /proc/meminfo angucken.
-
vielen Dank!
Ich werde wohl den vorgeschlagenen weg nehmen dass der user entcheiden darf.
Danke für eure Ratschläge