Uma build grava milhares de arquivos pequenos que ninguém vai precisar no dia seguinte: DerivedData, target, build, caches de pacotes. Em um disco RAM todo esse vaivém acontece na memória: builds e acessos ao cache ficam mais rápidos e o SSD é poupado. Veja quais pastas vale a pena mover, a configuração exata de cada ferramenta e como manter tudo funcionando depois de reiniciar.
- Mover: DerivedData do Xcode, caches do npm, pip, Cargo e Gradle, pastas de build, TEMP.
- Nunca só na RAM: código-fonte, repositórios, Archives do Xcode, tudo que você não salvou ou não deu commit.
- Manter entre reinicializações: caches de pacotes sim, DerivedData e pastas de build se você quiser.
- Tamanho: 2 GB para um cache de pacotes, 8 GB para vários caches ou para o DerivedData.
O que mover e o que deixar quieto
Um disco RAM perde os arquivos quando é ejetado ou quando o computador desliga, a não ser que eles sejam salvos em outro lugar. Por isso ele serve para pastas que a ferramenta consegue gerar ou baixar de novo sozinha.
- DerivedData do Xcode: produtos de compilação e índices
- caches do npm, Yarn, pip, Cargo, Gradle, Maven
- saída de build:
target,build,obj - TEMP no Windows, TMPDIR no Mac
- código-fonte e repositórios Git
- Archives do Xcode das versões que você publicou
- configurações e credenciais:
~/.npmrc,gradle.properties - tudo que existe em uma única cópia
Do jeito manual, ferramenta por ferramenta
Primeiro crie um disco RAM (no Mac, no Windows) e depois aponte cada ferramenta para uma pasta nele. Todas as configurações abaixo vêm da documentação oficial das ferramentas.
| Ferramenta | Pasta padrão | Como mover |
|---|---|---|
| DerivedData do Xcode | ~/Library/Developer/Xcode/DerivedData | Xcode > Settings > Locations > Derived Data: Custom. Em scripts: xcodebuild -derivedDataPath <caminho> |
| cache do npm | ~/.npm, Windows: %LocalAppData%\npm-cache | npm config set cache <caminho> |
| cache do pip | ~/.cache/pip, Mac: ~/Library/Caches/pip, Windows: %LocalAppData%\pip\Cache | PIP_CACHE_DIR=<caminho> ou --cache-dir |
| build do Cargo | target em cada projeto | CARGO_TARGET_DIR=<caminho> ou build.target-dir em .cargo/config.toml |
| Gradle | ~/.gradle | GRADLE_USER_HOME=<caminho> |
No macOS ou no Linux fica assim (aqui o disco está montado em /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, só no macOS (depois reinicie o Xcode):
defaults write com.apple.dt.Xcode IDECustomDerivedDataLocation /Volumes/RAMDisk/DerivedData
GRADLE_USER_HOME também leva junto o gradle.properties, os scripts de inicialização e as distribuições do Wrapper, e no CARGO_HOME ficam as ferramentas instaladas e as credenciais. Nesses casos, mova só as pastas de cache (~/.gradle/caches, ~/.cargo/registry) com um link simbólico (ln -s, no Windows mklink /J). E lembre: depois de reiniciar, o disco RAM não existe mais, e as configurações e links apontam para o nada até você criá-lo de novo. Com o Exlade RamDisk: modelos
O Exlade RamDisk é um disco RAM gratuito para Windows, macOS e Linux. Os modelos dele fazem esses passos por você e desfazem tudo quando o disco é ejetado.
Developer (8 GB, Windows e Linux) move os caches do npm, Yarn, pip, Cargo, Gradle, Maven, Go e NuGet. npm (2 GB) existe nos três sistemas, e Xcode (8 GB, macOS) fica com o DerivedData. Pastas de ferramentas que você não tem são ignoradas.

Em “Pastas neste disco”, clique em “Adicionar pasta…” e escolha o target, build ou obj de um projeto. Ative “Criar ao iniciar o Windows” e, para caches de pacotes, “Manter arquivos”.

No Windows e no Linux, no lugar da pasta fica um link para o disco (no Windows, uma junction, sem direitos de administrador), e as ferramentas veem os caminhos de sempre. No Mac, o modelo Xcode muda o local do Derived Data nas configurações do Xcode (reinicie o Xcode), e o modelo npm define cache no ~/.npmrc. Quando o disco é ejetado, tudo volta ao que era.
Manter os arquivos depois de reiniciar?
| Pasta | Manter? | Por quê |
|---|---|---|
| caches do npm, pip, Cargo, Gradle | sim | senão os pacotes são baixados de novo a cada reinicialização |
| DerivedData do Xcode | opcional | ele se enche de novo na primeira build |
| pastas de build | opcional | a primeira build depois de reiniciar será completa |
| TEMP, TMPDIR | não | são arquivos temporários |
Por isso o modelo Developer no Windows mantém os arquivos e o Xcode não. Um disco ao iniciar com “Manter arquivos” os salva periodicamente e antes de desligar; se a energia cair de repente, só se perde o que mudou desde o último salvamento.
Quanta memória dar
Comece pelo tamanho do modelo. No Windows, no Linux e no macOS 26, um disco ocupa memória conforme os arquivos são gravados, não o tamanho inteiro de uma vez. No macOS 15 o tamanho todo é reservado assim que o disco é criado, então o modelo Xcode de 8 GB já ocupa 8 GB de RAM: ali, escolha um tamanho que o seu Mac possa ceder. Dá para mudar o tamanho depois: no Mac e no Linux os arquivos ficam, no Windows só discos NTFS mudam de tamanho no lugar (por isso os modelos Developer e npm usam NTFS), e um disco exFAT ou FAT32 precisa ser criado de novo. Depois de um dia de trabalho, o “Histórico de uso” mostra quanto cada disco realmente precisou. Em um computador com 8 GB de memória, um disco RAM logo começa a tirar memória da IDE e dos compiladores. Saiba mais: vale a pena ter um disco RAM? e Memória e histórico.
Servidores de build e CI
O utilitário eramdisk tem os mesmos comandos no Windows, no macOS e no Linux, com saída em JSON para scripts. Em um servidor Linux você pode instalar só o serviço e o utilitário, sem interface gráfica.
eramdisk create -t Developer # caches de pacotes (Windows, Linux)
eramdisk create -s 4G -n Build --startup # disco criado a cada inicialização
eramdisk redirect add Build ~/src/app/target # mover uma pasta de build para ele
eramdisk list --json # discos e quanto ocupam
Perguntas frequentes
O Xcode percebe que o DerivedData mudou de lugar?
Sim, depois que você reinicia o Xcode: o modelo Xcode muda o mesmo local do Derived Data que você definiria em Xcode > Settings > Locations. Quando o disco é ejetado, a configuração anterior volta.
Posso deixar o código-fonte em um disco RAM?
Melhor não. Se o disco sumir antes de os arquivos serem salvos, o trabalho sem commit se perde. Mantenha o código no SSD e coloque no disco RAM só o que dá para compilar ou baixar de novo.
Windows 10 e 11, macOS 15 e posterior, Ubuntu, Debian e Fedora. Sem cadastro e sem período de avaliação.
Baixar grátis Recursos