Unter Linux kann man ja Dateien in den Page Cache, und damit in das RAM, bekommen indem man sie einmal einliest, z. B. mit einem cat nach /dev/null : http://www.commandlinefu.com/commands/view/9682/load-file-into-ram-cache-for-faster-accessing-for-repeated-usage Funktioniert das ebenso unter Microsoft Windows, also mittels Cygwin?
Probiers doch einfach aus. Mit RamMap aus der Sysinternals Suite kannst Du sehen, ob die Datei danach im Speicher liegt.
Ja, läuft bei Windows genauso. Einlesen führt zum Cachen. Und mit RAMMap kannst Du Dir die anschauen welche Dateien zur Zeit im Cache sind (unter 'Physical Pages'). https://docs.microsoft.com/en-us/sysinternals/downloads/rammap
Kann funktionieren, muss aber nicht: Nur "vorwärts" gelesene Daten werden auch schnell wieder aus dem Page Cache rausgeschmissen. Ich würde statt dreckigen Ticks eher schnelle SSD einsetzen.
Ka ob windows das kann, aber unter Linux kannst du ramdisks anlegen. Damit liegt die Datei dann garantiert im RAM und du hast ordentlichen Zugriff drauf. Beim Cache Trick ist das nicht gegeben, die Daten könnten bereits eine Sekunde später wieder raus fliegen.
meckerziege schrieb: > Damit liegt die Datei dann garantiert im RAM Genau das will man aber oft nicht. Sobald das System "was besseres" mit dem RAM vorhat, soll es die Dateien gerne wieder aus dem Cache schmeißen. Typischer Anwendungsfall für solche erzwungenen Read-Aheads: Systemstart, RAM ist frei, CPU&Platten wären Idle während auf den User-Login gewartet wird. Diese Warte-Zeit kann man sinnvoll nutzen, indem man schonmal Sachen in den Cache prügelt, die der User nach seinem Login sowieso höchstwahrscheinlich benutzt. Wenn man da mal daneben liegt, und der Benutzer z.B. unerwartet statt mit einer Runde Websurfen zu starten direkt den Compiler anwirft, entsteht kein Nachteil. Dann fliegt der Firefox halt aus dem Cache, sobald der Compiler RAM sehen will. Mit solchen Tricks konnte man Früher™ die Schwuppdiztät von alten Krücken doch erheblich steigern. Heute baut man lieber SSDs ein.
AntiMaker schrieb: > Systemstart, RAM ist frei, CPU&Platten wären Idle während auf den > User-Login gewartet wird. Diese Warte-Zeit kann man sinnvoll nutzen, > indem man schonmal Sachen in den Cache prügelt, die der User nach seinem > Login sowieso höchstwahrscheinlich benutzt. Beispiele: e4rat (boot) ureadahead (boot) preload (user)
:
Bearbeitet durch User
Ich habe es mal ausprobiert, aber das Einlesen von 10 GB mit cat dauerte über eine halbe Stunde (auf dem Firmen-Notebook), so das es praktisch zu langsam ist. Daher ziehe ich von HDD auf SSD um.
Vermutlich ist das Einlesen und vor allem Ausgeben mit den Cygwin-Tools ziemlich ineffizient. Ein C-Programm, das nur die Win32-API-Funktionen CreateFile und ReadFile aufruft, ohne etwas mit den Daten zu machen, dürfte wesentlich schneller sein. Bei 85 MB/s wären die 10 GB in zwei Minuten eingelesen. Die SSD ist aber unabhängig davon eine gute Entscheidung. Gerade in einem Notebook, das offenbar > 8 GB RAM hat, sollte das eigentlich Standard sein.
Naja, auf dem Firmen-Notebook läuft ja mindestens ein Virenscanner im Hintergrund, so das auch der bremst. Bei einer kleinen Firma hatte ich ständig Admin-Rechte und keine Partition war verschlüsselt, so das ich den Virenscanner problemlos abschalten/verschieben konnte und danach dauerte ein Build nur halb so lange. Privat verwende ich PCIe-SSDs, die mindestens 2000 MB/s schreibend und 3000 MB/s lesend schaffen (Samsung 960 Pro M.2), so das ich das Problem nicht zuhause habe.
Bernd K. schrieb: > AntiMaker schrieb: >> Systemstart, RAM ist frei, CPU&Platten wären Idle während auf den >> User-Login gewartet wird. Diese Warte-Zeit kann man sinnvoll nutzen, >> indem man schonmal Sachen in den Cache prügelt, die der User nach seinem >> Login sowieso höchstwahrscheinlich benutzt. > > Beispiele: > > e4rat (boot) > ureadahead (boot) > preload (user) Es gibt sogar Betriebssysteme die das von Haus aus können: https://de.wikipedia.org/wiki/SuperFetch
Irgendwer schrieb: > Es gibt sogar Betriebssysteme die das von Haus aus können Definiere "von Haus aus können". * Daß es im Repository ist und mit einem Mausklick aktiviert werden kann? * Daß es per Default installiert und aktiviert ist (so wie damals zu HDD Zeiten ureadahead bei Ubuntu)? Definiere "Betriebssystem" * Der Kernel? * Die Distribution? BTW: Mein OT-Warnsystem meldet gerade daß wir mit 95% Wahrscheinlichkeit Gefahr laufen vom Thema abzuschweifen.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.