Forum

8 GB di RAM sono sufficienti per la programmazione?

iMacedonian

Manifesto originale
10 ottobre 2015
Brno, Repubblica Ceca
  • 15 dicembre 2018
Ehilà.

Sto seriamente pensando di acquistare un MacBook Pro 13' 2018. L'uso principale del laptop sarebbe per la codifica (sviluppo web front-end), ma mi piacerebbe approfondire lo sviluppo di app iOS in seguito. Detto questo, sono sufficienti 8 GB di RAM per eseguire XCODE o dovrei investire un po' di più per ottenere la versione da 16 GB?

revmacian

20 ottobre 2018


USI
  • 15 dicembre 2018
iMacedonian ha detto: Ciao.

Sto seriamente pensando di acquistare un MacBook Pro 13' 2018. L'uso principale del laptop sarebbe per la codifica (sviluppo web front-end), ma mi piacerebbe approfondire lo sviluppo di app iOS in seguito. Detto questo, sono sufficienti 8 GB di RAM per eseguire XCODE o dovrei investire un po' di più per ottenere la versione da 16 GB?
Eseguo Xcode sul mio Mac mini 2014: ha 4 GB di RAM e non vedo alcun problema. Ci saranno alcune persone che ti diranno che 16 GB o più di RAM sono un must, ma ho visto che questo semplicemente non è vero.
Reazioni:jeremiah256, racerhomie, BigMcGuire e 1 altra persona

Emanuel rodriguez

17 ottobre 2018
  • 15 dicembre 2018
revmacian ha detto: Eseguo Xcode sul mio Mac mini 2014 - ha 4 GB di RAM e non vedo alcun problema. Ci saranno alcune persone che ti diranno che 16 GB o più di RAM sono un must, ma ho visto che questo semplicemente non è vero.
Concordato. Ho scoperto che anche un Raspberry Pi con il suo singolo giga di RAM è in grado di compilare la maggior parte delle cose. Se un progetto ha una tonnellata di codice C++ (guardandoti LLVM) o altri linguaggi complessi (che richiedono al compilatore di lavorare sodo e quindi utilizzare più RAM), generalmente non può gestirlo. Sembra che circa 3 GB siano un minimo sicuro per il lavoro di sviluppo, secondo la mia esperienza.

EDIT: Anche se tieni presente che si trattava di 3 GB all'interno di una VM, senza una GUI. L'opzione da 8 GB è decisamente sicura, per ora. Tuttavia, consiglierei 16 GB solo per il futuro. 8GB sta cominciando a diventare meno comodo rispetto al passato. Ultima modifica: 15 dicembre 2018
Reazioni:BigMcGuire, jaduff46 e iMacedonian A

ammulder

18 dicembre 2015
  • 16 dicembre 2018
Per quanto tempo hai intenzione di tenere la macchina? Dal momento che la memoria non può essere aggiornata, stai davvero acquistando per quanta memoria ti servirà tra 3-5 anni, non oggi. (Tenendo presente che ogni versione degli strumenti di sviluppo utilizza più memoria della precedente.) In particolare se si finisce per utilizzare contenitori o macchine virtuali (ad esempio per eseguire una versione locale di un back-end a cui si connette l'app), il colpo di produttività di troppo poca memoria in seguito non vale il risparmio sui costi ora.
Reazioni:jeremiah256, racerhomie, iMacedonian e 1 altra persona

sbavare di cane

19 ottobre 2014
Apple Campus, Cupertino CA
  • 16 dicembre 2018
Ricorda la programmazione in 4K nel 1976.
Reazioni:PhilMacbook

960design

17 aprile 2012
Destino, FL
  • 17 dicembre 2018
iMacedonian ha detto: Ciao.

Sto seriamente pensando di acquistare un MacBook Pro 13' 2018. L'uso principale del laptop sarebbe per la codifica (sviluppo web front-end), ma mi piacerebbe approfondire lo sviluppo di app iOS in seguito. Detto questo, sono sufficienti 8 GB di RAM per eseguire XCODE o dovrei investire un po' di più per ottenere la versione da 16 GB?
8 GB sono molti, io uso un MBPr da 16 GB e raramente vedo la pressione della memoria saltare sopra gli 8 GB.

Per inciso, controlla in Expo.io ( https://expo.io/ ). È quello che usano tutti i ragazzi fantastici in questi giorni (molto più facile da distribuire su più piattaforme). Avvertenza: funzionerà per la maggior parte delle app, ma alcune hanno requisiti/esigenze hardware specifici che Expo non soddisferà. Comunque un fantastico punto di partenza.
Reazioni:iMacedonian J

jtara

23 aprile 2009
  • 17 dicembre 2018
Definisci cosa intendi per 'abbastanza'?

Intendi 'abbastanza in modo che le build non falliscano?'

O 'abbastanza in modo che le build vengano completate in un lasso di tempo accettabile'?

E/o 'abbastanza in modo che l'interfaccia utente non sia lenta e io possa lavorare in un editor/navigare nel web/leggere e-mail durante una build senza lentezza?

Dipende dalle tue aspettative e dalla tua toolchain.

Lo sviluppo frontend ha in genere una toolchain breve/semplice. Tutto ciò di cui hai veramente bisogno è un buon editor adatto all'attività, un piccolo server web 'giocattolo', forse alcuni strumenti per minimizzare Javascript/CSS (e forse un compilatore Sass) per build di produzione, e durante lo sviluppo in genere non useresti nemmeno Quello.

Lo sviluppo del back-end potrebbe spesso non richiedere altro che lo sviluppo del front-end. O potrebbe aver bisogno di un po' di più. Ad esempio, uso PostgreSQL come database. Quindi, ho un'istanza locale per lo sviluppo/test. Eseguo pgAdmin4, che viene eseguito in un contenitore Docker. Potrebbe essere necessario eseguire una VM che replichi il tuo ambiente di backend. I GB si sommano.

Lo sviluppo di app native viene spesso eseguito con strumenti minimi. Per lo sviluppo di app iOS di base, non hai bisogno di altro che Xcode. OK, e il simulatore iOS. Se stai eseguendo una sorta di sviluppo ibrido e multipiattaforma, probabilmente aggiungi ulteriori componenti della toolchain e, di necessità, SDK Android e strumenti di creazione. Lo sviluppo di Android utilizza un compilatore diverso. Aggiungi un altro simulatore. (Uso GenyMotion, poiché entrambi gli approcci forniti da Google sono lenti come melassa.) Qualsiasi simulatore Android decente viene eseguito in una VM.

Oh, devi testare quel sito web su Windows? Aggiungi una macchina virtuale Windows.

Oggi molti strumenti vengono eseguiti in un contenitore o in una macchina virtuale. Ciò si aggiunge ai requisiti di memoria.

Ottieni quanta più memoria può sopportare il tuo budget. Penso, tuttavia, che 64 GB siano oggi il limite pratico per la maggior parte dello sviluppo. Di recente ho ricevuto un iMac Pro con 64 GB per lo sviluppo. Io uso un grande set di strumenti. Ho controllato Activity Monitor e scopro di non aver ancora utilizzato un file di scambio. Ma una volta che tutti gli strumenti sono stati caricati, sto usando da qualche parte tra 32 GB e 64 GB, in genere 40-50 GB. Ma in realtà non ho ancora caricato TUTTO in una volta.

Quello che ti devi chiedere è:

- È importante che il sistema sia reattivo durante la costruzione?
- Quanto tempo di un ciclo di costruzione sei disposto a tollerare?

Nello sviluppo front-end, in genere non si dispone di un 'ciclo di compilazione', ovvero build/test/repeat. Quanto tempo sei disposto ad aspettare per scoprire di aver commesso un semplice errore che richiederà alcuni secondi per essere corretto? 15 minuti? 5 minuti? 1 minuto? 30 secondi?

Nello sviluppo di app utilizzando un linguaggio compilato, hai sempre un ciclo di compilazione e può essere significativo. Capisco che il ciclo di build Swift è sostanzialmente più lungo del ciclo di build Objective-C. (Non uso Swift da solo, perché faccio sviluppo ibrido e il codice della piattaforma sottostante è in Objective-C (Java per Android), C e C++ - no Swift).

La quantità di RAM disponibile avrà un impatto significativo sul tempo del ciclo di costruzione.
Reazioni:tegranjeet, quietstormSD, Anony-mouse e 1 altra persona m

mpe

3 settembre 2010
  • 17 dicembre 2018
Utente iMac Pro da 32 GB qui.

Sì. 8 GB di RAM sono sufficienti per la maggior parte delle cose.
Reazioni:iMacedonian J

jtara

23 aprile 2009
  • 17 dicembre 2018
mp ha detto: sì. 8 GB di RAM sono sufficienti per la maggior parte delle cose.

MacBook Pro utilizza la memoria di sistema per il display?

8 GB sicuramente non sono sufficienti, ad esempio, su un Mac Mini, poiché una buona parte (a seconda del modello) viene utilizzata per il display.

Il feedback più importante fornito qui è che sui MacBook recenti la memoria è saldata. Stai prendendo una decisione per i prossimi anni.
Reazioni:iMacedonian

Toutou

a
6 gennaio 2015
Praga, Repubblica Ceca
  • 17 dicembre 2018
Se hai un budget limitato (e non c'è da vergognarsi in questo), 8 concerti saranno sufficienti. Sebbene alcuni strumenti di sviluppo siano piuttosto pesanti in termini di RAM (*cough* Android Studio *cough*), il mio Pro 2013 da 4 GB è ancora utilizzabile. E il mio ThinkPad prodotto dal lavoro su cui sviluppo Rails (in RubyMine, in Linux) funziona a meraviglia con 8 giga.
Reazioni:iMacedonian

iMacedonian

Manifesto originale
10 ottobre 2015
Brno, Repubblica Ceca
  • 17 dicembre 2018
jtara ha detto: Definisci cosa intendi per 'abbastanza'?

Intendi 'abbastanza in modo che le build non falliscano?'

O 'abbastanza in modo che le build vengano completate in un lasso di tempo accettabile'?

E/o 'abbastanza in modo che l'interfaccia utente non sia lenta e io possa lavorare in un editor/navigare nel web/leggere e-mail durante una build senza lentezza?

Dipende dalle tue aspettative e dalla tua toolchain.

Lo sviluppo frontend ha in genere una toolchain breve/semplice. Tutto ciò di cui hai veramente bisogno è un buon editor adatto all'attività, un piccolo server web 'giocattolo', forse alcuni strumenti per minimizzare Javascript/CSS (e forse un compilatore Sass) per build di produzione, e durante lo sviluppo in genere non useresti nemmeno Quello.

Lo sviluppo del back-end potrebbe spesso non richiedere altro che lo sviluppo del front-end. O potrebbe aver bisogno di un po' di più. Ad esempio, uso PostgreSQL come database. Quindi, ho un'istanza locale per lo sviluppo/test. Eseguo pgAdmin4, che viene eseguito in un contenitore Docker. Potrebbe essere necessario eseguire una VM che replichi il tuo ambiente di backend. I GB si sommano.

Lo sviluppo di app native viene spesso eseguito con strumenti minimi. Per lo sviluppo di app iOS di base, non hai bisogno di altro che Xcode. OK, e il simulatore iOS. Se stai eseguendo una sorta di sviluppo ibrido e multipiattaforma, probabilmente aggiungi ulteriori componenti della toolchain e, di necessità, SDK Android e strumenti di creazione. Lo sviluppo di Android utilizza un compilatore diverso. Aggiungi un altro simulatore. (Uso GenyMotion, poiché entrambi gli approcci forniti da Google sono lenti come melassa.) Qualsiasi simulatore Android decente viene eseguito in una VM.

Oh, devi testare quel sito web su Windows? Aggiungi una macchina virtuale Windows.

Oggi molti strumenti vengono eseguiti in un contenitore o in una macchina virtuale. Ciò si aggiunge ai requisiti di memoria.

Ottieni quanta più memoria può sopportare il tuo budget. Penso, tuttavia, che 64 GB siano oggi il limite pratico per la maggior parte dello sviluppo. Di recente ho ricevuto un iMac Pro con 64 GB per lo sviluppo. Io uso un grande set di strumenti. Ho controllato Activity Monitor e scopro di non aver ancora utilizzato un file di scambio. Ma una volta che tutti gli strumenti sono stati caricati, sto usando da qualche parte tra 32 GB e 64 GB, in genere 40-50 GB. Ma in realtà non ho ancora caricato TUTTO in una volta.

Quello che ti devi chiedere è:

- È importante che il sistema sia reattivo durante la costruzione?
- Quanto tempo di un ciclo di costruzione sei disposto a tollerare?

Nello sviluppo front-end, in genere non si dispone di un 'ciclo di compilazione', ovvero build/test/repeat. Quanto tempo sei disposto ad aspettare per scoprire di aver commesso un semplice errore che richiederà alcuni secondi per essere corretto? 15 minuti? 5 minuti? 1 minuto? 30 secondi?

Nello sviluppo di app utilizzando un linguaggio compilato, hai sempre un ciclo di compilazione e può essere significativo. Capisco che il ciclo di build Swift è sostanzialmente più lungo del ciclo di build Objective-C. (Non uso Swift da solo, perché faccio sviluppo ibrido e il codice della piattaforma sottostante è in Objective-C (Java per Android), C e C++ - no Swift).

La quantità di RAM disponibile avrà un impatto significativo sul tempo del ciclo di costruzione.
Grazie per l'ampia risposta, mi ha dato una prospettiva migliore sulle risorse necessarie per questi vari scenari di codifica che hai menzionato.
[doublepost=1545084766][/doublepost]
ammulder ha detto: per quanto tempo hai intenzione di tenere la macchina? Dal momento che la memoria non può essere aggiornata, stai davvero acquistando per quanta memoria ti servirà tra 3-5 anni, non oggi. (Tenendo presente che ogni versione degli strumenti di sviluppo utilizza più memoria della precedente.) In particolare se si finisce per utilizzare contenitori o macchine virtuali (ad esempio per eseguire una versione locale di un back-end a cui si connette l'app), il colpo di produttività di troppo poca memoria in seguito non vale il risparmio sui costi ora.
I miei laptop di solito durano 4-6 anni, o anche di più, quindi in base a ciò che ho letto finora, forse sarebbe meglio ottenere la versione da 16 GB se voglio massimizzare l'utilizzo. A

Mouse anonimo

25 agosto 2016
  • 17 dicembre 2018
jtara ha detto: Definisci cosa intendi per 'abbastanza'?

(tagliare)

Oggi molti strumenti vengono eseguiti in un contenitore o in una macchina virtuale. Ciò si aggiunge ai requisiti di memoria.

Ottieni quanta più memoria può sopportare il tuo budget. Penso, tuttavia, che 64 GB siano oggi il limite pratico per la maggior parte dello sviluppo. Di recente ho ricevuto un iMac Pro con 64 GB per lo sviluppo. Io uso un grande set di strumenti. Ho controllato Activity Monitor e scopro di non aver ancora utilizzato un file di scambio. Ma una volta che tutti gli strumenti sono stati caricati, sto usando da qualche parte tra 32 GB e 64 GB, in genere 40-50 GB. Ma in realtà non ho ancora caricato TUTTO in una volta.

Quello che ti devi chiedere è:

- È importante che il sistema sia reattivo durante la costruzione?
- Quanto tempo di un ciclo di costruzione sei disposto a tollerare?

Nello sviluppo front-end, in genere non si dispone di un 'ciclo di compilazione', ovvero build/test/repeat. Quanto tempo sei disposto ad aspettare per scoprire di aver commesso un semplice errore che richiederà alcuni secondi per essere corretto? 15 minuti? 5 minuti? 1 minuto? 30 secondi?

Nello sviluppo di app utilizzando un linguaggio compilato, hai sempre un ciclo di compilazione e può essere significativo. Capisco che il ciclo di build Swift è sostanzialmente più lungo del ciclo di build Objective-C. (Non uso Swift da solo, perché faccio sviluppo ibrido e il codice della piattaforma sottostante è in Objective-C (Java per Android), C e C++ - no Swift).

La quantità di RAM disponibile avrà un impatto significativo sul tempo del ciclo di costruzione.

Questo lo riassume abbastanza bene. Se è necessario eseguire VM, è possibile eseguire 8 GB (è possibile eseguire comodamente una VM in 8 GB di RAM). Se si dispone di un SSD, la differenza di velocità tra avere 8 GB e più RAM non sarà molto ovvia a meno che non si stia eseguendo un numero elevato di VM e/o si tenti di compilare un'enorme base di codice. C

Costruire

23 giugno 2010
  • 17 dicembre 2018
La differenza tra una macchina da 8 GB e una da 16 GB è che, a volte, dovrai prendere decisioni consapevoli su quali app affamate di memoria tenere in primo piano.

Le app affamate di memoria come XCode e Android Studio andranno bene con 8 GB. Il problema si presenterebbe se provassi a eseguire Slack connesso a più gruppi, lasciando Chrome aperto con numerose schede, o forse un sistema VM per eseguire alcuni container Docker. È la concorrenza che causa i problemi.

Se puoi permetterti il ​​salto a 16 GB e hai intenzione di tenere questa macchina per un po', penso che ne valga la pena per il futuro. Se il costo aggiuntivo è sufficiente per farti pensare due volte, allora dimenticalo e fai solo 8 GB. Sarai felice in ogni caso.
Reazioni:Mouse anonimo

revmacian

20 ottobre 2018
USI
  • 17 dicembre 2018
jtara ha detto: 8 GB sicuramente non sono sufficienti, ad esempio, su un Mac Mini, poiché una buona parte (a seconda del modello) viene utilizzata per il display.

Come ho affermato in precedenza, eseguo Xcode sul mio Mac mini 2014 - ha 4 GB di RAM e non vedo alcun problema. Se riesco a codificare comodamente con 4 GB, allora 8 GB sono sufficienti. J

jtara

23 aprile 2009
  • 30 dicembre 2018
kadammanali987 ha detto: (Le persone spesso mantengono l'applicazione per la compilazione e giocano fino a quel momento. Questo rallenta l'elaborazione)

Oppure potresti semplicemente accelerare il ciclo di compilazione-link-run fino al punto in cui non ci vuole più di un sano togliersi il culo dalla sedia per un paio di minuti.

Una parte di ciò è disporre di memoria sufficiente per consentire al compilatore di funzionare in modo efficiente, con scambi minimi o nulli.

Che PUOI non significa che DOVRAI. Devi decidere quanto è prezioso il tuo tempo.

Il momento decisivo per questa equazione per me è stato molti, molti anni fa. Un prodotto chiamato Instant-C. Ha ridotto quel ciclo da alcuni minuti a diversi secondi. Mi ha ispirato a ridurre un ciclo compile-link-run per un'applicazione che simula e analizza le variazioni (da un modello, originariamente scritto in Fortran) negli assiemi meccanici da mezz'ora a meno di un minuto. (OK, ho imbrogliato: ho rimosso il ciclo compile-link-run... scrivendo un compilatore specifico del dominio e un interprete di bytecode associato) 35 anni dopo, è ancora la soluzione predominante per quel dominio.

Ad ogni modo, OP ha preso la sua decisione, penso che sia stata saggia.

A proposito, se stessi ancora usando il mio i7 Mini del 2012 per le build, impiegherei un Ramdisk. Circa la metà del tempo di costruzione per me sulla Mini. L'ho provato sul mio nuovo iMac Pro, ma non ha avuto lo stesso impatto. Temo di non aver pensato di provare il ramdisk fino a quando non ho avuto l'iMac Pro. MacOS non ha davvero grandi soluzioni RamDisk. Il Mini ha 16 GB. Non c'è margine per un ramdisk su una macchina con 4 GB. (L'iMac Pro ha 64 GB).

vbctv

a
25 settembre 2013
Cleveland, Ohio
  • 2 maggio 2019
jtara ha detto: MacBook Pro utilizza la memoria di sistema per il display?

8 GB sicuramente non sono sufficienti, ad esempio, su un Mac Mini, poiché una buona parte (a seconda del modello) viene utilizzata per il display.

Il feedback più importante fornito qui è che sui MacBook recenti la memoria è saldata. Stai prendendo una decisione per i prossimi anni.

Ho un Mac Mini 2018 collegato a 2 monitor e ho 8 GB di RAM, non vedo mai problemi e faccio sia lavoro di sviluppo Android Studio che Xcode oltre a eseguire MAMP Pro in background. Il monitoraggio della pressione della memoria non si alza mai realmente e rimane sempre verde e basso. Ho discusso di un aggiornamento a 16 GB, ma non ne vedo davvero la necessità a meno che non trovi un ottimo affare in vendita .... C

ChromeCloud

21 giugno 2009
Italia
  • 2 maggio 2019
Ho trovato la maggior parte delle risposte finora fuorvianti.

Quando provo a utilizzare il mio MacBook Air con 4 GB di RAM per sviluppare app iOS (sto parlando di app reali, non solo di piccoli progetti demo), l'esperienza diventa piuttosto frustrante molto velocemente. La semplice apertura di Xcode e Safari con 3 o 4 schede saturerà completamente la RAM (ricorda che il sistema da solo richiede circa 2 GB) e l'utilizzo del simulatore per eseguire il debug delle app è praticamente impossibile (il computer rallenta al punto da non rispondere).

Con 8 GB starai bene. Ma non per molto. Diciamo che 8 GB sono il minimo per eseguire comodamente l'intera suite di sviluppo iOS + un paio di app sul lato se vuoi avere un editor di testo di fantasia o alcuni strumenti per creare grafica vettoriale, ad esempio.

Quindi, se dovessi acquistare una nuova macchina ora e tenerla per i prossimi 3 anni o più, otterrei almeno 16 GB di RAM.

Un'altra parola di cautela: non l'avrei mai previsto qualche anno fa quando ho comprato il mio iMac (che ha 32 GB di RAM ed è la mia workstation principale), ma sembra che se vuoi eseguire il simulatore senza che l'intera GUI balbetti, Anche la VRAM (ovvero la memoria video) svolge un ruolo importante nell'equazione.

Per un iMac retina, una scheda video da 2 GB non sarà sufficiente per eseguire tutto senza problemi: ogni pochi secondi il buffer si riempie (lo provo solo durante l'esecuzione del simulatore però) e l'iMac si blocca per una frazione di secondo mentre viene svuotato e riempito di nuovo. È super fastidioso.

Quindi la mia raccomandazione per qualcosa su cui puoi lavorare comodamente per i prossimi 3 anni è: 16 GB di RAM (o più) + 4 GB di VRAM (o più) .
Reazioni:Emanuel rodriguez m

mkelly

29 novembre 2007
  • 3 maggio 2019
8 GB sono sufficienti per oggi, a patto di non eseguire macchine virtuali. 16 GB è probabilmente il punto debole se stai guardando il laptop che dura 4-6 anni. 32/64 GB sono eccessivi a meno che non si eseguano molte VM contemporaneamente o si abbiano soldi da spendere. m

folle

12 febbraio 2019
  • 4 maggio 2019
Xcode è pesante sulla CPU meno sulla RAM. Ho appena acquistato un Mac mini 2018 i7 6 core e quando compilo iOS e Swift in Xcode la CPU nel monitor delle attività arriva al 90%!
Nella stessa applicazione posso vedere che l'utilizzo della RAM è inferiore a 8 GB senza swap. Per dopo sto pensando di aggiornare la RAM ma al momento non ho fretta. F

Filipeteixeira

10 aprile 2013
  • 6 maggio 2019
Dovrebbe essere più che sufficiente. Spesso è solo un problema quando lavori con linguaggi come R o giù di lì. Perché quei linguaggi spesso tendono a caricare tutto nella memoria, il che significa che con set di dati di grandi dimensioni, più RAM hai e migliori saranno le prestazioni.