La RAM è molto cruciale per le prestazioni di Linux per un paio di motivi:
Cache. Linux funziona senza memoria libera per la maggior parte del tempo. Se parte della memoria non viene utilizzata dalle applicazioni, viene utilizzata per le cache che velocizzano le cose. Quindi nessun ricordo è mai sprecato. Se le applicazioni richiedono più memoria, le cache vengono liberate in modo che le cache non impediscano mai l'esecuzione delle applicazioni che richiedono più RAM. Ma ovviamente più cache puoi memorizzare, meglio è.
Molte applicazioni (specialmente quelle desktop) hanno bisogno di molta memoria per funzionare al giorno d'oggi. Non è una sorpresa: la maggior parte dei sistemi desktop (o persino degli smartphone) oggigiorno ha molta più memoria di Rapsberry Pi. Ad esempio browser Web anche leggeri) utilizzeranno decine di MB di memoria non appena si apre un sito Web più grande.
Ogni applicazione richiede una certa quantità di memoria. Quindi più applicazioni esegui, più memoria usano.
Quindi vuoi sempre avere più memoria ARM possibile. Ma la GPU ha le sue esigenze a seconda delle funzionalità che desideri da essa.
Versione da 256 MB
Per i vecchi RaspberryPi, con 256 MB di RAM, sono disponibili 4 split:
240/16 - Il ARM di dimensioni RAM più grande può ottenere (240 MB) con memoria GPU mimiale. È il meglio per il computing generale quando non hai bisogno di grafica 3D o accelerazione video hardware. Ha memoria sufficiente per gestire la risoluzione del framebuffer 1920x1200x16bpp. Anche se funziona anche 32bpp, non è raccomandato poiché lascia pochissima memoria libera per la GPU.
224/32 - Questo è deprecato a favore della divisione 240/16. Ha la decodifica video 3D e hardware integrata ma dal momento che non c'è abbastanza memoria per usarlo effettivamente, ha poco senso usarlo. A meno che tu non abbia dei problemi con la divisione 240/16 o desideri utilizzare framebuffer a 32 bpp alla massima risoluzione. È possibile che verrà eliminato in futuro.
192/64 - Per utilizzare l'accelerazione video hardware o la grafica 3D sono necessari almeno 64 MB di divisione GPU. Potrebbe non essere sufficiente memoria GPU per la riproduzione video con accelerazione hardware alla massima risoluzione o se hai bisogno di molta memoria GPU per cose come le trame.
128/128 - La maggior parte della GPU RAM può ottenere. Usalo quando hai bisogno di molta memoria per la scheda grafica 3D e la riproduzione video con accelerazione hardware ad alta risoluzione. Questa suddivisione è necessaria per il corretto funzionamento di RaspBMC o per riprodurre i contenuti video fullHD con omxplayer senza problemi.
Versione da 512 MB
Le nuove versioni di RaspberryPi hanno 512 MB di RAM. Hai 4 divisioni aggiuntive progettate per questa versione:
- 496/16 e 448/64 - simili
240/16
e 192/64
divisi rispettivamente per 256 MB, ma con 256 MB di RAM in più disponibili per ARM. Poiché la GPU ha solo 16 MB / 64 MB o RAM, tutte le limitazioni da 240/16
/ 192/64
continuano ad applicarsi.
- 384/128 - Simile a 128/128 diviso per 256 MB - dovresti ottenere tutte le funzionalità del chip grafico ma con una quantità ragionevole di memoria ARM. Questa sarà probabilmente la divisione più universale in questo momento.
- 256/256 - Alcuni bonus di memoria della scheda grafica se ne hai davvero bisogno, come per grandi trame e cose simili. Mentre 256 MB di memoria ARM sono più grandi di quanto possiate avere nei precedenti RaspberryPis, non credo che questo verrà usato in molte occasioni.
Divisioni dinamiche
Le nuove versioni del pacchetto firmware rimuovono la maggior parte dei start_*.elf
file, lasciando solo start.elf
e start_cd.elf
(anche i fixup*.elf
file dove vengono aggiunti). D'ora in poi, non devi scegliere manualmente il corretto start_*.file
. Invece, dovresti usare le gpu_mem*
opzioni nel config.txt
file per scegliere quanta memoria va alla GPU. La memoria rimanente verrà assegnata a ARM. Dovrebbe essere possibile usare un numero arbitrario nel seguente intervallo per queste opzioni:
**512MB of RAM**: 16M-448M
**256MB of RAM**: 16M-192M
Anche se non ci sono valori di divisione hardcoded in questo momento, la maggior parte delle informazioni per il resto di questa risposta dovrebbe essere ancora valida quando stai cercando di determinare quanta memoria dovrebbe essere allocata alla GPU.
start_cd.elf
e i fixup_cd.elf
file sono versioni ridotte dei rispettivi file, utilizzate solo quando gpu_mem=16
.
Utilizzo di una scheda SD su entrambe le versioni da 256 e 512 MB
Se si utilizza un'immagine della scheda SD per diverse versioni di RaspberryPi, è possibile utilizzare gpu_mem_256
e le gpu_mem_512
opzioni. Il primo verrà utilizzato solo sulla versione da 256 MB, mentre il secondo solo sulla versione da 512 MB della scheda.