RAM-Laufwerk für die Erstellung - gibt es so etwas?

stimmen
49

Eine Antwort (siehe unten) auf einer der Fragen hier auf StackÜberlauf gab mir eine Idee für ein großes kleines Stück Softwaredie überallunschätzbarem Wert für Programmierer sein könnten.

Ich stelle mir vor, RAM-Laufwerk Software, aber mit einem entscheidenden Unterschied - es wäre einen echten Ordner auf meiner Festplatte spiegeln. Genauer gesagt - der Ordner, die das Projekt enthält ich aktuell arbeite. So ist jeder baut würde fast augenblicklich sein (oder zumindest ein paar Größenordnung schneller). Das RAM-Laufwerk würde seinen Inhalt mit dem Festplattenlaufwerk im Hintergrund synchronisieren nur ungenutzte Ressourcen verwenden.

Eine schnelle Google-Suche ergab nichts, aber vielleicht weiß ich einfach nicht, wie bei Google. Vielleicht kennt jemand von einer solchen Software? Vorzugsweise frei, aber angemessene Gebühren könnten auch in Ordnung sein.

Hinzugefügt: Einige Lösungen sind vorgeschlagen worden , die ich in der ersten Stunde verworfen. Sie würden (in keiner bestimmten Reihenfolge):

  • Kaufen Sie eine schnellere Festplatte ( SSD vielleicht oder 10K RPM). Ich will nicht eine Hardware - Lösung. Nicht nur Software hat das Potenzial , billiger zu sein, aber es kann auch in Umgebungen eingesetzt werden , in denen Hardware - Änderungen unerwünscht wäre , wenn nicht unmöglich (Freeware, anyone?) - sagen wir, im Büro.
  • Lassen Sie O / HDD das Caching tun - es weiß besser , wie Sie Ihre freie RAM verwenden. Die OS / HDD haben generische Cache - Algorithmen , die alles Cache und versuchen , vorherzusagen , welche Daten werden die meisten in der Zukunft benötigt werden. Sie haben keine Ahnung , dass für mich die Priorität meiner Projektordner ist. Und wie wir alle wissen ganz gut - sie nicht wirklich es cachen viel sowieso. ;)
  • Es gibt viele RAM - Laufwerke um; Verwenden Sie eine von denen. Es tut uns Leid, das wäre rücksichtslos. Ich brauche meine Daten auf die Festplatte synchronisiert zurück zu werden , wenn es ein bisschen freie Zeit ist. Im Falle eines Stromausfalls ich ertragen konnte die letzten fünf Minuten Arbeit zu verlieren, aber nicht alles seit meinem letzten Check -in .

Hinzugefügt 2: Eine Idee , die kam - ein normales RAM - Laufwerk verwenden und einen Hintergrund Ordner Synchronizer (aber ich meine , Hintergrund ). Gibt es so etwas?

Hinzugefügt 3: Interessant. Ich habe gerade ein einfaches RAM - Laufwerk bei der Arbeit erprobt. Die Wiederherstellungszeit sinkt von ~ 14 Sekunden auf ~ 7 Sekunden (nicht schlecht), aber inkrementale Builds ist immer noch bei ~ 5 Sekunden - genau wie auf der HDD. Irgendwelche Ideen , warum? Es verwendet aspnet_compilerund aspnet_merge. Vielleicht haben sie etwas mit anderen temporären Dateien an anderer Stelle?

Hinzugefügt 4: Oh, schöne neue Reihe von Antworten! :) OK, ich habe ein bisschen mehr Informationen für alle Sie Neinsager bekam. :)

Einer der Hauptgründe für diese Idee ist nicht die oben genannten Software (14 sek bauen Zeit), aber eine andere, die ich nicht Zugang zu dem Zeitpunkt hatte. Diese andere Anwendung verfügt über eine 100 MB Code - Basis, und seine volle Build dauert ca. 5 Minuten. Ach ja, es ist in Delphi 5 , so dass der Compiler ist nicht zu weit fortgeschritten. :) Setzen Sie die Quelle auf einem RAM - Laufwerk in Folge einen großen Unterschied. Ich habe es unter einer Minute, denke ich. Ich habe nicht gemessen. Also für alle , die sagen , dass das O Sachen besser zwischenspeichern kann - ich würde bitte zu unterscheiden.

Verwandte Frage:

RAM-Disk für Geschwindigkeit bis IDE

Hinweis auf den ersten Link: Die Frage , auf die es verknüpft wurde gelöscht , weil es ein Duplikat war. Es fragte:

Was tun Sie, während Kompilieren Ihres Codes?

Und die Antwort von Dmitri Nesteruk , an dem ich verbunden war:

Ich kompilieren fast sofort. Nicht zuletzt aufgrund meiner Projekte sind kleine, zum Teil aufgrund der Verwendung von RAM-Disks.

Veröffentlicht am 09/12/2008 um 22:11
quelle vom benutzer
In anderen Sprachen...                            


18 antworten

stimmen
17

In Linux (Sie nie sind , welches Betriebssystem Sie erwähnt auf, so dass diese könnten relevant sein) Sie können Block - Geräte aus dem RAM und montieren sie wie jeder andere Block - Gerät (das heißt, eine HDD) erstellen.

Anschließend können Sie Skripts erstellen, die bei der Inbetriebnahme / Abschaltung, sowie in regelmäßigen Abständen und von diesem Laufwerk zu kopieren.

Zum Beispiel könnte man es so einrichten , haben Sie ~/codeund ~/code-real. Ihr RAM - Block wird bei montiert ~/codebeim Start, und dann ist alles aus ~/code-real(was auf Ihrer Standard - Festplatte ist) wird kopiert. Beim Herunterfahren würde alles (kopiert rsync ‚d wäre schneller) wieder aus ~/codezu ~/code-real. Sie möchte auch wahrscheinlich , dass Skript regelmäßig ausgeführt werden , so dass Sie nicht viel Arbeit im Falle eines Stromausfalls verloren hat usw.

Ich mache das nicht mehr (ich es verwenden Opera , wenn die 9.5 Beta langsam war, keine Notwendigkeit mehr).

Hier ist, wie ein RAM-Disk in Linux zu erstellen.

Beantwortet am 09/12/2008 um 23:58
quelle vom benutzer

stimmen
15

Ich bin überrascht, wie viele Menschen legen nahe, dass das Betriebssystem kann auf herauszufinden, Ihren Caching Bedarf einen besseren Job macht, als Sie können in diesem speziellen Fall. Während ich dies nicht tun, für die Erstellung, habe ich es für Ähnliche Prozesse tun, und ich endete mit einem RAM-Disk mit Skripten auf, die die Synchronisation automatisieren.

In diesem Fall denke ich, dass ich mit einem modernen Quellensteuersystem gehen würde. Bei jedem kompilieren würde es in dem Quellcode überprüfen (entlang einem experimentellen Zweiges falls erforderlich) automatisch, so dass jeder der Kompilierung in den Daten gespeichert worden off führen würde.

Um die Entwicklung zu starten, starten Sie die RAM-Disk und ziehen Sie die aktuelle Basislinie. Führen Sie die Bearbeitung, kompilieren, zu bearbeiten, kompilieren, usw. - all das, während die Änderungen werden für Sie gespeichert.

Hat die Endprüfung in, wenn glücklich, und Sie haben nicht einmal zu Ihrem normalen Festplattenlaufwerk einzubinden.

Aber es gibt Hintergrund Synchronisator, die Dinge automatisieren - das Problem ist, dass sie auch nicht für die Programmierung optimiert werden und müssen unter Umständen vollständige Verzeichnis- und Dateiscans gelegentlich Änderungen zu fangen tun. Ein Quellcode-Kontrollsystem ist für genau diesen Zweck entwickelt, so wäre es wahrscheinlich geringerer Overhead sein, auch wenn es in Ihrem Build-Setup vorhanden ist.

Beachten Sie, dass eine Hintergrund - Sync - Aufgabe, im Fall eines Stromausfalls, nicht definiert ist. Sie würden am Ende mit , um herauszufinden , was gerettet wurde und was nicht gespeichert wurde , wenn die Dinge schief gelaufen ist . Mit einem Sparpunkt definiert (an jedem kompilieren oder von Hand gezwungen) müssten Sie eine ziemlich gute Idee , dass es zumindest in einem Zustand war , wo Sie dachten , Sie kompilieren können. Verwenden Sie einen VCS und man kann es leicht zum vorherigen Code vergleichen und sehen , welche Änderungen Sie bereits angewandt haben.

Beantwortet am 27/03/2009 um 05:03
quelle vom benutzer

stimmen
4

Siehe oben entstehen Beschleunigung mit tmpfs ( Gentoo Linux Wiki).

Eine Beschleunigung compiliert mit RAM-Laufwerke unter Gentoo wurde Gegenstand einer wie-zu geschrieben vor vielen Äonen. Es stellt ein konkretes Beispiel dafür, was getan wurde. Der Kern ist, dass all Source und baut Zwischendatei für Kompilierung zu einem RAM-Disk umgeleitet werden, während endgültige Binärdateien auf die Festplatte gerichtet sind, für die Installation.

Außerdem empfehle ich die Erkundung Ihre Quelle auf der Festplatte beibehalten, aber git pushIhre letzte Quelle Änderungen an einen Klon respository , die auf dem RAM - Disk befindet. Kompilieren Sie den Klon. Verwenden Sie Ihre Lieblings - Skript die Binärdateien erstellt zu kopieren.

Ich hoffe das hilft.

Beantwortet am 10/12/2008 um 01:28
quelle vom benutzer

stimmen
3

Verwenden Sie https://wiki.archlinux.org/index.php/Ramdisk , um den RAM - Disk zu machen.

Dann schrieb ich diese Skripte Verzeichnisse zu und von dem RAM - Disk zu bewegen. Die Sicherung wird in einer aus tar - Datei , bevor sie in den RAM - Disk zu bewegen. Der Vorteil der es auf diese Weise tun , ist , dass der Weg gleich bleibt, so dass alle Konfigurationsdateien müssen nicht geändert werden . Wenn Sie fertig sind, verwenden Sie uramdirzurück auf die Festplatte zu bringen.

Edit: C - Code hinzugefügt , die jeden Befehl ausführen wird es auf einem Intervall im Hintergrund gegeben. Ich schicke es tarmit --updatedem Archiv , wenn alle Änderungen zu aktualisieren.

Ich glaube, diese Allzwecklösung schlägt eine einzigartige Lösung für etwas sehr einfach zu machen. KUSS

Stellen Sie sicher, Pfad zu ändern, um rdbackupd

RAMDIR

#!/bin/bash

# May need some error checking for bad input.

# Convert relative path to absolute
# /bin/pwd gets real path without symbolic link on my system and pwd
# keeps symbolic link. You may need to change it to suit your needs.
somedir=`cd $1; /bin/pwd`;
somedirparent=`dirname $somedir`

# Backup directory
/bin/tar cf $somedir.tar $somedir

# Copy, tried move like https://wiki.archlinux.org/index.php/Ramdisk
# suggests, but I got an error.
mkdir -p /mnt/ramdisk$somedir
/bin/cp -r  $somedir /mnt/ramdisk$somedirparent

# Remove  directory
/bin/rm -r $somedir

# Create symbolic link. It needs to be in parent of given folder.
/bin/ln -s /mnt/ramdisk$somedir $somedirparent

#Run updater
~/bin/rdbackupd "/bin/tar -uf $somedir.tar $somedir" &

uramdir

#!/bin/bash

#Convert relative path to absolute
#somepath would probably make more sense
# pwd and not /bin/pwd so we get a symbolic path.
somedir=`cd $1; pwd`;

# Remove symbolic link
rm $somedir

# Copy dir back
/bin/cp -r /mnt/ramdisk$somedir $somedir

# Remove from ramdisk
/bin/rm -r /mnt/ramdisk$somedir

# Stop
killall rdbackupd

rdbackupd.cpp

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <signal.h>
#include <sys/time.h>

struct itimerval it;
char* command;

void update_archive(int sig)
{
    system(command);
}

int main(int argc, char**argv)
{
    it.it_value.tv_sec     = 1;   // Start right now
    it.it_value.tv_usec    = 0;
    it.it_interval.tv_sec  = 60;  // Run every 60 seconds
    it.it_interval.tv_usec = 0;

    if (argc < 2)
    {
        printf("rdbackupd: Need command to run\n");
        return 1;
    }
    command = argv[1];

    signal(SIGALRM, update_archive);
    setitimer(ITIMER_REAL, &it, NULL); // Start

    while(true);

    return 0;
}
Beantwortet am 26/10/2011 um 00:00
quelle vom benutzer

stimmen
3

Ich habe nicht genau das, was Sie suchen, aber ich bin jetzt eine Kombination der Verwendung von Ramdisk und DRAM RAM - Disk . Da diese Windows ist, habe ich eine harte 3 - GB - Grenze für Kernspeicher, was bedeutet , ich nicht zu viel Speicher für eine RAM - Disk verwenden können. 4 GB Extra auf der 9010 rockt es wirklich. Ich lasse meine IDE speichern alle seine temporären Sachen auf dem Festplattenzustand RAM und auch die Maven - Repository. Der DRAM - RAM - Disk hat eine Batterie - Backup auf die Flash - Karte. Das klingt wie eine Anzeige, aber es ist wirklich eine hervorragende Einrichtung.

Die DRAM-Platte verfügt über Doppel-SATA-300 Ports und kommt mit 0,0 ms aus gemittelt bei den meisten Tests suchen;) Etwas für den Weihnachtsstrumpf?

Beantwortet am 09/12/2008 um 22:41
quelle vom benutzer

stimmen
3

Ihr Betriebssystem wird es im Speicher-Cache, wie es funktioniert. Ein RAM-Disk könnte scheint schneller, aber das ist, weil Sie nicht in der „Kopie an Ramdisk“ sind Factoring und „Kopie von RAMDisk“ -Zeiten. Widmet RAM auf eine feste Größe Ramdisk reduziert nur den verfügbaren Speicher für das Caching. Das Betriebssystem weiß besser, was in RAM sein muss.

Beantwortet am 09/12/2008 um 22:38
quelle vom benutzer

stimmen
2

Ja, ich habe das gleiche Problem begegnet. Und nach fruchtlos googeln Ich schrieb nur einen Windows-Dienst für faule Sichern des RAM-Laufwerk (tatsächlich - einen beliebigen Ordner, weil RAM-Laufwerk in montiert werden kann, beispielsweise auf dem Desktop).

http://bitbucket.org/xkip/transparentbackup Sie können für Scan festlegen Intervall (Standard 5 Minuten). Und ein Intervall für das Scannen nur angemeldeten Dateien (Standard 30 Sekunden). Scan erkennt geändertene Dateien des ‚Archiv‘ Attribut (das O setzt , dass eine speziell für die Archivierung Zweck). Nur geänderte Dateien auf diese Weise gesichert werden.

Der Service läßt eine spezielle Marker-Datei, um sicherzustellen, dass Ziel-Backup ist genau eine Sicherung der Quelle. Wenn die Quelle leer ist und keine Marker-Datei enthält, führt der Dienst automatische Wiederherstellung von Backup. So können Sie bequem das RAM-Laufwerk zerstören, und erstellen Sie es erneut mit dem automatischen Datenwiederherstellung. Es ist besser, ein RAM-Laufwerk zu verwenden, die eine Partition auf dem Systemstart zu schaffen in der Lage, sie transparent zu arbeiten.

Eine andere Lösung , die ich vor kurzem entdeckt habe , ist Super SuperCache .

Das Unternehmen hat auch eine RAM-Disk, aber das ist eine andere Software. SuperCache können Sie zusätzliche RAM verwenden für Block-Level-Caching (es ist sehr verschieden von Datei-Caching) und eine weitere Option - Spiegel Sie vollständig RAM-Laufwerk. In jedem Szenario können Sie festlegen, wie oft schmutzig Blöcke zurück auf die Festplatte zu löschen, schreibt wie auf dem RAM-Laufwerk zu machen, aber der Spiegel Szenario macht auch liest sich wie aus dem RAM-Laufwerk. Sie können eine kleine Partition, zum Beispiel 2 GB (unter Windows) erstellen und die gesamte Partition RAM abzubilden.

Eine interessante und sehr nützliche Sache über diese Lösung - können Sie Caching ändern und Spiegelungsoptionen jederzeit nur sofort mit zwei Klicks. Zum Beispiel, wenn Sie Ihr 2 GB zurück für gamimg oder virtuelle Maschine - können Sie einfach aufhören sofort zurück und lassen Sie die Speicherspiegelung. Auch Datei-Handles geöffnet nicht brechen - die Partition weiter zu arbeiten, aber als üblich fahren.

EDIT: Ich empfehle Ihnen auch die TEMP-Ordner zu te RAM-Laufwerk verschieben, weil Compiler in der Regel eine Menge Arbeit mit Temp machen. In meinem Fall gab es mir einen anderen 30% der Übersetzungsgeschwindigkeit.

Beantwortet am 11/03/2012 um 07:31
quelle vom benutzer

stimmen
2

Ich hatte die gleiche Idee und tat etwas Forschung. Ich fand die folgenden Tools, die das tun, was Sie suchen:

Allerdings habe ich die zweiten nicht 7 überhaupt zu bekommen arbeitet an 64-Bit-Windows konnte verwalten, und es scheint nicht zur Zeit aufrechterhalten werden.

Der VSuite RAM - Disk auf den anderen Händen funktioniert sehr gut. Leider konnte ich keine signifikante Leistungssteigerung messen im Vergleich zur SSD Disk vorhanden.

Beantwortet am 09/11/2011 um 20:33
quelle vom benutzer

stimmen
2
  1. Profil. Stellen Sie sicher , dass Sie gute Messungen der einzelnen Optionen zu tun. Sie können sogar Dinge kaufen Sie bereits abgelehnt haben, messen sie und bringt sie, so dass Sie wissen , dass Sie von guten Daten arbeiten.

  2. Holen Sie sich eine Menge RAM. 2 GB DIMMs sind sehr billig; 4 GB DIMMs sind etwas mehr als US $ 100 / ea, aber das ist immer noch nicht viel Geld im Vergleich zu dem, was Computer - Teile noch vor wenigen Jahren kosten. Egal , ob Sie mit einem RAM - Disk landen oder nur lassen die OS nicht sein Ding, wird dies dazu beitragen. Wenn Sie mit 32-Bit - Windows verwenden , müssen Sie auf 64-Bit wechseln Verwendung von etwas mehr als 3 GB zu machen oder so.

  3. Live Mesh können von Ihrem lokalen RAM - Laufwerk in der Cloud oder auf einen anderen Computer synchronisieren, Sie up-to-date - Backup zu geben.

  4. Bewegen Sie nur Compiler - Ausgänge. Halten Sie Ihren Quellcode auf dem realen physischen Datenträger, sondern direkt OBJ, DLL und EXE - Dateien auf dem RAM - Laufwerk erstellt werden.

  5. Betrachten wir ein DVCS . Klonen aus dem realen Laufwerk in ein neues Repository auf dem RAM - Laufwerk. „Push“ , um die Änderungen oft an die Eltern, sagen jedes Mal , alle Tests bestehen.

Beantwortet am 10/12/2008 um 00:31
quelle vom benutzer

stimmen
2

Wir haben dieses Jahr für einen vor tun 4GL Makro-Compiler; wenn Sie die Makro - Bibliothek und Support - Bibliotheken und der Code auf einem RAM - Disk setzen, einen Antrag zu stellen (auf 80.286) würde von 20 Minuten bis 30 Sekunden gehen.

Beantwortet am 09/12/2008 um 22:32
quelle vom benutzer

stimmen
1

Es gibt viele RAMDrives um, verwenden Sie einen von denen. Es tut uns Leid, das wäre rücksichtslos.

Nur wenn Sie ganz in dem RAM-Disk arbeiten, was dumm ist ..

Psuedo-ish Shell-Skript, ramMake:

# setup locations
$ramdrive = /Volumes/ramspace
$project = $HOME/code/someproject

# ..create ram drive..

# sync project directory to RAM drive
rsync -av $project $ramdrive

# build
cd $ramdrive
make

#optional, copy the built data to the project directory:
rsync $ramdrive/build $project/build

Das hieß, den Compiler kann möglicherweise dies tun, ohne zusätzlichen Skripte .. Sie Ihre Build-Ausgabestelle in einem RAM-Disk ändern, zum Beispiel in Xcode, es ist in den Voreinstellungen, Bauen, „Platz Bauen Produkte in:“ und „Platz Intermediate-Build-Dateien im:".

Beantwortet am 27/03/2009 um 06:31
quelle vom benutzer

stimmen
1

Was kann Super von Vorteil sein auf sogar eine Single-Core - Maschine parallel machen. Disk - I / O ist ein ziemlich großer Faktor in dem Build - Prozess. Zwei Compiler Laichen Instanzen pro CPU - Kern kann tatsächlich die Leistung steigern. Als ein Compiler - Instanz Blöcke auf I / O der andere können in der Regel in den CPU intensiven Teil springen kompilieren.

Sie müssen sicherstellen, dass Sie den RAM haben, dies zu unterstützen (sollte kein Problem auf einem modernen Arbeitsplatz sein), sonst werden Sie tauschen am Ende und die Niederlagen der Zweck.

Auf GNU machen Sie nur verwenden können , -j[n]wo [n]die Anzahl der gleichzeitigen Prozesse ist , um zu laichen. Stellen Sie sicher , dass Sie Ihren Abhängigkeitsbaum Recht haben , bevor es aber oder die Ergebnisse können versuchen , unberechenbar sein.

Ein weiteres Werkzeug , das wirklich nützlich ist (in der parallelen make Mode) ist distcc . Es funktioniert eine Behandlung mit GCC (wenn Sie GCC oder etwas mit einer ähnlichen Befehlszeilenschnittstelle verwenden). distcc bricht tatsächlich die Kompilierung Aufgabe auf , indem er vorgibt der Compiler und Laich Aufgaben auf Remote - Servern zu sein. Sie nennen es auf die gleiche Art und Weise , wie Sie GCC nennen würde, und Sie nutzen bildeten -j [n] Option nehmen viele distcc Prozesse zu nennen.

Bei einem meiner früheren Jobs hatten wir eine ziemlich intensive Linux-Betriebssystem zu bauen, die fast täglich für eine Weile durchgeführt wurde. Hinzufügen in ein paar spezielle bauen Maschinen und Putting distcc auf wenige Arbeitsplätze akzeptieren Aufträge zusammenstellen konnten wir Bauzeiten zu Fall bringen von einem halben Tag bis unter 60 Minuten für einen vollständigen OS + User-Space zu bauen.

Es gibt eine Menge anderer Werkzeuge zur Geschwindigkeit vorhandenen kompiliert. Vielleicht möchten Sie mehr untersuchen, als RAM-Disks zu schaffen; etwas, das gefällt mir sehr wenig Gewinn aussieht haben, da das OS Disk-Caching mit RAM tut. OS-Designer verbringen viel Zeit Caching richtig hinzubekommen für die meisten Workloads; sie sind (gemeinsam) klüger als du, so würde ich es nicht besser zu versuchen und zu tun als sie.

Wenn Sie RAM für RAM-Disk zerkauen, das Betriebssystem weniger Arbeits-RAM auf Cache-Daten hat und zum Ausführen des Codes -> Sie werden mit mehr Swapping und schlechter Festplattenleistung am Ende als sonst (Anmerkung: Sie sollten diese Option Profil vor vollständig verwerfen es).

Beantwortet am 27/03/2009 um 05:29
quelle vom benutzer

stimmen
1

Ich frage mich, ob Sie 1 so etwas wie ein Software-RAID bauen könnten, wo Sie eine physische Festplatte / Partition als Mitglied haben, und ein Stück RAM als Mitglied.

Ich wette mit ein bisschen Zwicken und einige wirklich seltsame Konfiguration eines Linux, dies zu tun bekommen könnte. Ich bin nicht davon überzeugt, dass es die Mühe wert, obwohl sein würde.

Beantwortet am 10/12/2008 um 01:06
quelle vom benutzer

stimmen
0

Meine letzte Lösung für das Problem ist vmtouch: https://hoytech.com/vmtouch/ Dieses Tool den aktuellen Ordner in (RAM) Cache und vmtouch daemonizes in Hintergrund einrastet.

sudo vmtouch -d -L ./

Setzen Sie diese in der Schale rc für den schnellen Zugriff:

alias cacheThis = 'sudo vmtouch -d -L ./'

Ich suchte nach einem vorgefertigten Skript für eine ganze Weile, weil ich nicht meine eigenen RAM-Disk-rsync-Skript auf das Schreiben viel Zeit verschwenden wollte. Ich bin sicher, ich würde ein paar Grenzfälle verpasst haben, was ziemlich unangenehm wäre, wenn wichtige Code beteiligt war. Und ich mochte nie den Polling-Ansatz.

Vmtouch scheint, wie die perfekte Lösung. Darüber hinaus ist sie nicht verschwenden Speicher wie eine feste Größe Ramdisk tut. Ich habe nicht eine Benchmark, weil 90% meiner 1Gig Quelle + bauen Ordner wurden bereits im Cache gespeichert, aber zumindest fühlt es sich schneller;)

Beantwortet am 02/08/2017 um 10:08
quelle vom benutzer

stimmen
0

Die Scheibe Verlangsamung Sie entstehen hauptsächlich schreiben, und auch Virenscanner möglicherweise durch. Es kann zu stark zwischen OSes variieren.

Mit der Idee , dass schreibt ist langsamste, würde ich der Einrichtung versucht sein , einen Build in der Zwischen (zB .oDateien) und Binärdateien Ausgabe an einen anderen Ort zu bekommen, wie ein RAM - Laufwerk.

Sie könnten dann Link zu dieser ist / Zwischen Ordner schnellen Medien (unter Verwendung einen symbolischen Link oder NTFS - Abzweigungspunkt ).

Beantwortet am 27/09/2011 um 22:36
quelle vom benutzer

stimmen
0

Einige Ideen aus der Spitze von meinem Kopf:

Verwendung Sysinternals' Monitor Process (nicht verarbeiten Explorer ) zu überprüfen , was während eines Build geht weiter - das können Sie sehen , wenn %temp%verwendet wird, zum Beispiel (denken Sie daran , dass Antwortdateien wahrscheinlich mit FILE_ATTRIBUTE_TEMPORARY erstellt werden , die Scheibe möglichst schreibt verhindern sollte, obwohl). Ich habe meine bewegt %TEMP%zu einem RAM - Disk, und das gibt mir kleinere speedups im Allgemeinen.

Holen Sie sich einen RAM-Disk, die automatisch laden / speichern Disk-Images unterstützt, so dass Sie nicht über Boot-Skripte zu verwenden, um dies zu tun. Sequentielle Lese- / Schreib einer einzelnen Disk-Image ist schneller als viele kleine Dateien zu synchronisieren.

Zeigen Sie häufig verwendete / große Header - Dateien auf dem RAM - Disk, und außer Kraft setzt Compiler Standardpfade die RAM - Laufwerk Kopien zu verwenden. Es gibt wahrscheinlich nicht , dass viel von einer Verbesserung nach erstmaliger baut, obwohl, wie das Betriebssystem der Standard - Header - Caches.

Halten Sie Ihre Quelldateien auf der Festplatte, und synchronisieren zu dem RAM - Disk - nicht umgekehrt . Schauen Sie sich Mirror zu tun Echtzeit - Synchronisation zwischen Ordnern - es dies über einen Filtertreiber erreicht, so synchronisiert sich nur , was notwendig ist (und nur , dass Änderungen - ein 4 KB Schreiben auf eine 2 GB - Datei wird nur ein 4 KB Schreiben in den Zielordner führen ). Finde heraus , wie Ihr machen IDE Build aus dem RAM - Laufwerk , obwohl die Quelldateien auf der Festplatte sind ... und bedenken Sie, dass Sie benötigen, um große RAM - Laufwerk für große Projekte.

Beantwortet am 27/03/2009 um 06:16
quelle vom benutzer

stimmen
0

Das klingt wie Disk-Caching, die Ihr Betriebssystem und / oder Ihre Festplatte automatisch für Sie (in unterschiedlichem Ausmaß an Leistung, zugegebenermaßen) behandelt.

Mein Rat ist, wenn Sie die Geschwindigkeit Ihres Laufwerks nicht gefällt, eine High-Speed-Antrieb rein für die Erstellung Zwecke kaufen. Weniger Arbeit auf Ihrer Seite und Sie könnten die Lösung für Ihre Zusammenstellung Leiden haben.

Da diese Frage ursprünglich gefragt wurde, haben Spinnen Festplatten miserable Schildkröten werden, wenn sie SSDs verglichen. Sie sind sehr nah an den ursprünglich angeforderten RAM-Disk in einem SKU, dass Sie von Newegg oder Amazon kaufen können.

Beantwortet am 09/12/2008 um 22:16
quelle vom benutzer

stimmen
-1

So wie James Curran sagt, die Tatsache, dass die meisten Programme dem Gesetz der Referenzlokalität, die häufige Code- und Datenseitenzahl von der O Disk-Cache wird verengt auf eine überschaubare Größe im Laufe der Zeit folgen.

RAM-Disks war nützlich, wenn Betriebssysteme mit Einschränkungen wie dumm Caches (Win 3.x, Win 95, DOS) gebaut wurden. Der Vorteil RAM-Disk ist in der Nähe von Null, und wenn Sie eine Menge RAM zuweisen wird es Speicher zur Verfügung, den System-Cache-Manager saugt, Gesamtleistung des Systems zu verletzen. Als Faustregel ist: Lassen Sie Ihren Kernel, das zu tun. Dies ist das gleiche wie die „Speicher-Defragmentierung“ oder „Optimierer“ Programme: sie tatsächlich Seiten aus dem Cache erzwingen (so dass Sie mehr RAM schließlich bekommen), aber was das System eine Menge Seite-Verwerfungen im Laufe der Zeit, wenn die geladenen Programme zu tun beginnt für Code / Daten zu bitten, die ausgelagert wurde.

Also für mehr Leistung, erhält ein schnellen Disk-I / O-Hardware-Subsystem, vielleicht RAID, schnelleren CPU, Chipsatz besser (keine VIA!), Mehr physischen RAM usw.

Beantwortet am 27/03/2009 um 04:51
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more