Programm NICHT ins RAM laden?

  • Mal eine seltsame Frage:
    Gibt es eigentlich die Möglichkeit, einem Programm zu verklickern, dass es NICHT ins RAM geladen werden soll?

    Normalerweise ist das natürlich sinnvoll, schon klar, aber wenn man eine RamDisk verwendet und eigentlich ja schon alles im RAM ist, macht es ja keinen Sinn, das Programm nochmal ins RAM zu laden.

  • Es soll ja gar nicht ohne Arbeitsspeicher arbeiten, es ist nur schon im RAM wenn es von einer Ramdisk aus gestartet wird (die als SCSI-"Festplatte" erkannt und wie eine solche behandelt wird).
    Daher macht es ja wenig Sinn, das Programm nochmal zusätzlich ins herkömmliche RAM zu laden.

    Ich glaube eh nicht, dass es da eine Möglichkeit gibt, zu verhindern dass das Programm ins RAM geladen wird, aber fragen kostet ja nix....


  • Es soll ja gar nicht ohne Arbeitsspeicher arbeiten, es ist nur schon im RAM wenn es von einer Ramdisk aus gestartet wird (die als SCSI-"Festplatte" erkannt und wie eine solche behandelt wird).
    Daher macht es ja wenig Sinn, das Programm nochmal zusätzlich ins herkömmliche RAM zu laden.

    Ich glaube eh nicht, dass es da eine Möglichkeit gibt, zu verhindern dass das Programm ins RAM geladen wird, aber fragen kostet ja nix....

    Dir ist schon klar, dass die Binärdatei auf der RAM-Disk und der Prozess des Programms total unterschiedliche Sachen sind?

  • die Binardatei eines Programms ist i.a.R. eher klein, das was viel Platz belegt sind vom Programm zur Laufzeit angeforderte Daten. Man könnte damit theoretisch also den Speicherverbrauch des Firefox von 700mb auf 680mb oder so senken, aber was solls ;)

  • Nein, mir ist ehrlichgesagt nicht so ganz klar, was ihr meint (bzw. was genau die Binärdatei ist....)

    Es ist so, dass der auf die Ramdisk verschobene Firefox nach einem Windows Neustart in etwa 4 Sekunden geöffnet ist, während der auf der herkömmlichen Festplatte befindliche Firefox nach einem Neustart etwa 13 Sekunden braucht.

    Das führe ich darauf zurück, dass der Ram-Firefox ja schon im RAM ist, also dann quasi vom "Ramdisk-SCSI-Festplatten"-RAM ins normale RAM geladen wird, was natürlich deutlich schneller vonstatten geht als wenn er von der echten HD geladen wird.

  • ja das stimmt, RAM-to-RAM kopieren ist eben wesentlich schneller als ein Festplattenzugriff

    aber schau mal wie groß die dateien sind, die der firefox in deiner RAM-Disk belegt, und dann schau mal, wieviel RAM Firefox im Betrieb so nimmt, dann siehst du, dass die paar MB dateien nicht doppelt im RAM liegen zu haben nichts bringen

    RAM-Disks sind heutzutage aber ein Relikt der Vergangenheit, denn das was du willst macht das Betriebssystem (bei Windows spätestens seit Vista) automatisch. Beim Anlegen der RAM-Disk (beim booten) wird ja auch krams von der Festplatte gelesen und in den RAM gelegt und dann dort gehalten. wenn du Firefox einmal startest, macht das OS genau das gleiche. Seit Rechner immer mehr RAM haben als sie zur Programmausführung brauchen wird der Rest als Cache genutzt, d.h. das OS hebt prinzipiell erstmal alles, was es jemals von der Festplatte liest auf, auch wenn die Daten gar nicht mehr benötigt werden, weil die chance besteht, dass der krams irgendwann mal wieder gebraucht wird. erst wenn der RAM wirklich voll ist, dann wird alter krams entsorgt. Diesen Krams kannst du im Taskmanager nachschlagen, das sind die Einträge "Frei" bzw. "Im Cache". Und wenn du dich wunderst, warum "Frei" so wenig ist, dann siehst du, dass "Verfügbar" = "Frei" + "Im Cache"
    Wie das funktioniert kannst du gut sehen, wenn du Firefox einmal von der Festplatte startest, zumachst und dann nochmal startest. beim zweiten mal ist es genau so schnell, wie wenn du den krams vorher in die RAM-Disk geladen hast

    Einmal editiert, zuletzt von oreissig (17. Februar 2012 um 16:53)

  • Hm ja, das ist mir schon alles klar (und es dauert ja auch etwas länger bis Windows gestartet ist, weil eben erst das Image der Ramdisk ins RAM geladen wird).

    Auch dass Programme (und alles was dazu gehört) beim ersten Start erstmal ins RAM geladen werden, dann aber dort verbleiben ist mir klar.
    Deswegen startet ja auch ein HD-Firefox beim zweiten Mal fast genauso schnell wie der RAM-Firefox.

    Deswegen habe ich ja oben auch geschrieben, wie lange Firefox direkt nach dem Windows-Start braucht bis es vollständig geladen ist (eben weil zu dem Zeitpunkt noch nichts davon ins RAM geladen wurde (beim HD-Firefox), mal von dem Prefetch-Kram abgesehen...

    Aber ja, du hast schon recht, die paar MB an Programmdateien (Firefox-Ordner, Profilordner) sind nicht mit dem zu vergleichen was Firefox im Laufe der Zeit tatsächlich verbraucht (bei mir mit der Zeit bis zu 300MB) und da wäre es jetzt interessant zu wissen, ob es eine Möglichkeit gibt diese paar 100MB auf die RAM-Disk auszulagern.
    Zwar könnte man meinen, dass das ja herzlich wenig bringt, da es ja letztendlich egal ist, ob der Kram nun im herkömmlichen oder im Ramdisk-Ram liegt, aber z.B. bei 32Bit OS kann das schon interessanter sein, da man so das sichtbare und für Windows nutzbare RAM möglichst leerhalten könnte und stattdessen das unsichtbare RAM verwenden könnte.
    Bestimmte Programme können ja auch bei 32Bit OS RAM erkennen, das Windows selbst nicht mehr erkennen kann, eben auch dieses Ramdisk-Programm, wenn auch leider nicht mit meinem Internetrechner, denn der erkennt nicht mal im 64Bit Srv2008R2 die vollen 4GB. Bei einem anderen Rechner mit 8GB RAM funktioniert's aber.

    Ich habe mir auch schon überlegt, die Auslagerungsdatei auf die Ramdisk zu packen und das ist ja auch problemlos möglich, aber logischerweise wird ja erst ausgelagert wenn das herkömmliche RAM wirklich voll ist, was ja im Normalfall auch sinnvoll und wünschenswert ist, aber in diesem Fall bringt es dann fast nichts....

  • du könntest in so eine RAM-Disk nach dem 4GB-Bereich theoretisch eine Swap-Datei anlegen lassen, aber was bringts?
    hol dir ein 64bit-Windows und gut, alles andere bringt mehr overhead mit sich als man vermeintlichen Nutzen daraus schlägt

  • Ich hab eh auch ein 64Bit Windows (eben Srv 2008 R2) aber mich hätte es einfach interessiert, ob und was da machbar ist.

    (Auf meinem Internetrechner kann übrigens nicht mal das 64Bit OS die kompletten 4GB nutzen, weil das Mainboard kein "Memory Swapping" beherrscht. Ist zwar etwas schade um die 0,7GB RAM aber ich bin ja nur froh, dass ich den Rechner nicht auf 8GB aufgerüstet hab', denn das wäre dann wirklich bitter gewesen....)

  • Irgendwie erinnert mich die ganze Diskussion an die seeligen DOS-Zeiten, wo RAM-intensive Programme mit Overlays für diejenigen Programmteile arbeiteten, die man nur gelegentlich benötigte. Die arbeiteten tatächlich flotter, wenn man die overlays z.B. von einer RAM-Disk im Extended Memory startete. Solange man auf aktuellen Systemen aber mit Programmen arbeitet, deren RAM-Bedarf prinzipiell vom System gedeckt werden kann, überlässt man das (virtuelle) RAM-Management lieber dem System.

    "I think that computer viruses should count as life. I think it says something about human nature that the only form of life we have created so far is purely destructive. We've created life in our own image."
    (Stephen William Hawking)
    (Igor bevölkert das Winhistory-Forum seit dem 21.09.2006)
    (In the rpg commonly known as rl, Igor got an extra life on March 28, 2009)

  • Nein.

    ThinkPad X13s gen1 - Snapdragon 8cx gen3 - 16 GB DDR4 - Adreno 690 - 1 TB Corsair MP600 mini - FHD IPS - Win11
    New Shyzen - Ryzen 5 5600X - 32 GB DDR4 - Radeon RX 6750 XT - 250 GB Samsung 960 EVO; 120 GB Intenso SATA - 4k IPS - Win11
    Es ist RISC im Haus!

  • Ja, ich habe ein 64Bit Windows, aber normalerweise verwende ich XP.

    Bei dem Internetrechner ist das eh ziemlich egal, da reichen die 4GB (=3,3GB) RAM aus und die 512MB RAM Disk wodurch zwar Firefox schneller lädt erlaubt mir aber andererseits eh keine großartigen Sprünge.

    Es geht mehr um einen anderen Rechner, den ich dank billigem DDR3-Ram noch problemlos aufrüsten könnte.
    Da wird's mit dem 64Bit-Windows schwieriger, da ich einige ext. Geräte verwende für die es keine 64Bit-Treiber gibt oder jemals geben wird (und ohne die Geräte bringt mir der Computer nix....).

    Deswegen wollte ich eben herausfinden, welche Möglichkeiten es gibt, dieses unsichtbare RAM trotzdem nutzbar zu machen.
    Zur Systembeschleunigung à la Superfetch gibt es bspw. eboostr, das funktioniert einwandfrei und zahlt sich auf jeden Fall aus, lässt aber keine genaueren Einstellungen zu (das wäre bei dem Programm auch nicht sinnvoll), deswegen die Idee mit der RAM-Disk.
    Auch diese macht sich rentiert, denn viele Plugins die bisher von der Festplatte geladen werden mussten, können jetzt direkt von der Ramdisk ins herkömmliche RAM geladen werden.

    Nur umgekehrt funktioniert's eher schlecht, also Kram vom sichtbaren RAM ins unsichtbare auszulagern klappt schlecht, weil ja Windows davon gar nix weiß....

    Zitat

    Swap in den Ram legen? LOL

    Freut mich ja, dass es dich amüsiert aber vllt. verrätst du ja auch noch was konkret so lustig ist, dann hab' ich auch was zum lachen...;)

  • wie oft machst du denn zeug mit der legacy-hardware?

    wenn du fast nur den alten krams ausführst, dann wirst du wohl keine 8gb RAM benötigen für den alten krams
    wenns sehr selten ist, dann könntest du auch ein 64bit-windows nehmen und den krams in einer VM machen

    alternativ gäbs für 32bit-Systeme auch noch PAE, aber das hat auch einen performance impact

  • Okay, zum Ausnutzen von RAM, der zwar für das Betriebssystem sichtbar ist, aber weder zum Allozieren durch Programme noch zum Cachen genutzt kann, ist eine RAM-Disk immer noch eine Option … auch wenn diese Vorgehensweise meist doch eher von Diehard-Win9x-Anhängern gewählt wird, die dann aus Stabilitätsgründen den für Windows verfügbaren RAM reduzieren (auch wenn es z. B. durchaus Erfolgsmeldungen über die direkte Nutzung von 2 GB RAM unter Win98 aus dem MSFN-Forum gibt :fresse: ) und dann tatsächlich z. B. die Auslagerungsdatei auf die RAM-Disk packen.

    Ansonsten macht es wenig Sinn, dem Betriebssystem vorzuschreiben, wie es mit dem Speicher umzugehen hat. Kann mich noch gruselig dran erinnern, als es total cool war, immer möglichst viel RAM am Vergammeln frei zu haben und man unter XP deswegen mit Tools den Dateicache noch künstlich reduziert hat.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!