Una build scrive migliaia di piccoli file che il giorno dopo non servono più a nessuno: DerivedData, target, build, cache dei pacchetti. Su un disco RAM tutto questo lavoro avviene in memoria: build e accessi alla cache diventano più rapidi e l’SSD si consuma meno. Ecco quali cartelle conviene spostare, l’impostazione esatta per ogni strumento e come non perdere nulla dopo un riavvio.
- Da spostare: DerivedData di Xcode, cache di npm, pip, Cargo e Gradle, cartelle di build, TEMP.
- Mai solo in RAM: codice sorgente, repository, archivi, tutto ciò che non hai salvato o committato.
- Da conservare tra i riavvii: cache dei pacchetti sì, DerivedData e cartelle di build a scelta.
- Dimensioni: 2 GB per una cache di pacchetti, 8 GB per più cache o per DerivedData.
Cosa spostare e cosa lasciare stare
Un disco RAM perde i file quando viene espulso o quando spegni il computer, a meno che non vengano salvati altrove. Quindi va bene per le cartelle che uno strumento sa ricostruire o riscaricare da solo.
- DerivedData di Xcode: prodotti di compilazione e indici
- cache di npm, Yarn, pip, Cargo, Gradle, Maven
- output di build:
target,build,obj - TEMP su Windows, TMPDIR su Mac
- codice sorgente e repository Git
- archivi di Xcode delle build pubblicate
- impostazioni e credenziali:
~/.npmrc,gradle.properties - tutto ciò che esiste in una sola copia
A mano, strumento per strumento
Prima crea un disco RAM (su Mac, su Windows), poi indirizza ogni strumento verso una cartella al suo interno. Tutte le impostazioni qui sotto vengono dalla documentazione ufficiale degli strumenti.
| Strumento | Cartella predefinita | Come spostarla |
|---|---|---|
| DerivedData di Xcode | ~/Library/Developer/Xcode/DerivedData | Xcode > Settings > Locations > Derived Data: Custom. Negli script: xcodebuild -derivedDataPath <percorso> |
| cache di npm | ~/.npm, Windows: %LocalAppData%\npm-cache | npm config set cache <percorso> |
| cache di pip | ~/.cache/pip, Mac: ~/Library/Caches/pip, Windows: %LocalAppData%\pip\Cache | PIP_CACHE_DIR=<percorso> o --cache-dir |
| build di Cargo | target in ogni progetto | CARGO_TARGET_DIR=<percorso> o build.target-dir in .cargo/config.toml |
| Gradle | ~/.gradle | GRADLE_USER_HOME=<percorso> |
Su macOS o Linux appare così (qui il disco è montato in /Volumes/RAMDisk):
npm config set cache /Volumes/RAMDisk/npm
export PIP_CACHE_DIR=/Volumes/RAMDisk/pip
export CARGO_TARGET_DIR=/Volumes/RAMDisk/cargo-target
Xcode, solo su macOS (poi riavvia Xcode):
defaults write com.apple.dt.Xcode IDECustomDerivedDataLocation /Volumes/RAMDisk/DerivedData
GRADLE_USER_HOME sposta anche gradle.properties, gli script di inizializzazione e le distribuzioni del Wrapper, e in CARGO_HOME ci sono gli strumenti installati e le credenziali. In questi casi sposta solo le cartelle di cache (~/.gradle/caches, ~/.cargo/registry) con un link simbolico (ln -s, su Windows mklink /J). E ricorda: dopo un riavvio il disco RAM non c’è più, e impostazioni e link puntano al vuoto finché non lo ricrei. Con Exlade RamDisk: i modelli
Exlade RamDisk è un disco RAM gratuito per Windows, macOS e Linux. I suoi modelli fanno questi passaggi al posto tuo e li annullano quando il disco viene espulso.
Developer (8 GB, Windows e Linux) sposta le cache di npm, Yarn, pip, Cargo, Gradle, Maven, Go e NuGet. npm (2 GB) c’è su tutti e tre i sistemi, Xcode (8 GB, macOS) prende DerivedData. Le cartelle degli strumenti che non hai vengono saltate.

In «Cartelle su questo disco» fai clic su «Aggiungi cartella…» e scegli target, build o obj di un progetto. Attiva «Crea all’avvio di Windows» e, per le cache dei pacchetti, «Mantieni i file».

Su Windows e Linux al posto della cartella resta un link al disco (su Windows una junction, senza diritti di amministratore), così gli strumenti vedono i soliti percorsi. Su Mac il modello Xcode cambia la posizione di Derived Data nelle impostazioni di Xcode (riavvia Xcode) e il modello npm imposta cache in ~/.npmrc. Quando espelli il disco, tutto torna com’era.
Conservare i file dopo un riavvio?
| Cartella | Conservare? | Perché |
|---|---|---|
| cache di npm, pip, Cargo, Gradle | sì | altrimenti i pacchetti si riscaricano a ogni riavvio |
| DerivedData di Xcode | a scelta | si riempie di nuovo alla prima build |
| cartelle di build | a scelta | la prima build dopo il riavvio sarà completa |
| TEMP, TMPDIR | no | sono file temporanei |
Per questo il modello Developer su Windows mantiene i file e Xcode no. Un disco all’avvio con «Mantieni i file» li salva a intervalli regolari e prima dello spegnimento; dopo un’improvvisa mancanza di corrente si perde solo ciò che è cambiato dall’ultimo salvataggio.
Quanta memoria dargli
Parti dalla dimensione del modello. Su Windows, Linux e macOS 26 un disco occupa memoria man mano che scrivi file, non tutta la sua dimensione subito. Su macOS 15 l’intera dimensione viene riservata appena il disco è creato, quindi il modello Xcode da 8 GB occupa subito 8 GB di RAM: lì scegli una dimensione che il tuo Mac può permettersi. Puoi ridimensionare il disco anche dopo: su Mac e Linux i file restano, su Windows cambiano dimensione sul posto solo i dischi NTFS (per questo i modelli Developer e npm usano NTFS), mentre un disco exFAT o FAT32 va ricreato. Dopo una giornata di lavoro, la «Cronologia utilizzo» mostra quanto è servito davvero a ogni disco. Su un computer con 8 GB di memoria un disco RAM inizierà presto a toglierla all’IDE e ai compilatori. Approfondisci: conviene un disco RAM? e Memoria e cronologia.
Server di build e CI
L’utility eramdisk ha gli stessi comandi su Windows, macOS e Linux e un output JSON per gli script. Su un server Linux puoi installare solo il servizio e l’utility, senza interfaccia grafica.
eramdisk create -t Developer # cache dei pacchetti (Windows, Linux)
eramdisk create -s 4G -n Build --startup # disco creato a ogni avvio
eramdisk redirect add Build ~/src/app/target # sposta lì una cartella di build
eramdisk list --json # dischi e quanto occupano
Domande frequenti
Xcode si accorge che DerivedData è stata spostata?
Sì, dopo averlo riavviato: il modello Xcode cambia la stessa posizione di Derived Data che imposteresti in Xcode > Settings > Locations. Quando il disco viene espulso, torna l’impostazione precedente.
Posso tenere il codice sorgente su un disco RAM?
Meglio di no. Se il disco sparisce prima che i file vengano salvati, il lavoro non committato va perso. Tieni il codice sull’SSD e metti sul disco RAM solo ciò che si può ricompilare o riscaricare.
Windows 10 e 11, macOS 15 e successivi, Ubuntu, Debian e Fedora. Senza registrazione e senza periodo di prova.
Scarica gratis Funzionalità