Domanda:
Quale farebbe una differenza maggiore? CPU o RAM extra?
TOPCOD3R
2015-10-27 15:10:24 UTC
view on stackexchange narkive permalink

Sto costruendo un PC specifico per la programmazione. Uso principalmente Android Studio ed Eclipse che sono entrambi programmi piuttosto pesanti. Questo è il motivo per cui vorrei ottenere una CPU migliore / più RAM. Quale delle seguenti opzioni farebbe una maggiore differenza in termini di prestazioni e quale pensi valga la pena? Attualmente, per soddisfare il mio budget, posso aggiornare la CPU o la RAM, motivo per cui ho bisogno di aiuto per decidere quale mi avvantaggerebbe di più.

Intel Core i5 Quad Core i5 - 6600K (3,5 GHz) 6MB Cache -> Intel Core i7 Quad Core i7 - 6700 (3,4 GHz) 8 MB di cache.

O

HyperX Fury DDR4 da 16 GB a 2666 MHz (2 x 8) -> HyperX Fury DDR4 da 32 GB a 2666 MHz (4 x 8)

Quale consiglieresti di aggiornare?

Inoltre, voglio aggiungere che userò un Samsung 850 EVO SSD.

Consiglierei di acquistare un SSD invece di più RAM o una CPU più veloce. Dopo un certo punto (CPU Intel Atom davvero debole o 2 GB di RAM) il vero collo di bottiglia diventa operazioni IO al secondo sul disco rigido.
Qual è il tuo attuale utilizzo della memoria ora con il tuo carico peggiore / massimo? È anche vicino a 16 GB? In caso contrario, non me ne preoccuperei troppo. E il tuo tempo di compilazione? Sono pochi secondi o pochi minuti? Il tempo di compilazione dipende principalmente dalla CPU. Ancora una volta, tutto dipende dal tuo utilizzo come ha affermato James.
16 GB dovrebbero essere sufficienti a meno che tu non stia eseguendo più di 5 istanze di ciascun editor. Ecco la ripartizione: se i tuoi editor / computer funzionano lentamente, probabilmente avrai bisogno di più ram Se la tua compilazione non è abbastanza veloce, CPU / HDD devono essere aggiornati. Nel caso della programmazione, sarebbe probabilmente più vantaggioso avere un numero di core più alto rispetto alla velocità del processore se si utilizza la compilazione multi-thread (come make -j).
Per scoprire se sei a corto di RAM o CPU, dai un'occhiata a quanto di entrambi i tuoi processi stanno consumando tramite Task Manager o Process Explorer (Windows).
Attualmente il mio task manager mostra che sto consumando 5,2 GB di RAM rispetto agli attuali 8 disponibili, anche se non riesco a immaginarlo perché Android Studio è costantemente in ritardo ed è generalmente molto lento.
Non trascurare [Xeon E3-1230 v5] recentemente rilasciato (http://ark.intel.com/products/88182/Intel-Xeon-Processor-E3-1230-v5-8M-Cache-3_40-GHz) - tutte le prestazioni dell'i7 ad un prezzo a metà tra l'i5 e l'i7. Se hai bisogno dell'iGPU, vai con [Xeon E3-1245 v5] (http://ark.intel.com/products/88173/Intel-Xeon-Processor-E3-1245-v5-8M-Cache-3_50-GHz ), che ha specifiche più elevate e un prezzo ancora inferiore rispetto all'i7.
Va notato che sto usando felicemente un E3-1230 v2 da alcuni anni, raffreddato passivamente, sotto tensione a velocità di clock di serie, RAM DDR3L ECC e assolutamente zero problemi hardware. Mi aspetto che la generazione Skylake sarà più efficiente e non meno affidabile.
http://stackoverflow.com/questions/4533116/minimum-hardware-requirements-for-android-development e http://stackoverflow.com/questions/16732021/why-emulator-is-very-slow-in-android- studio sembrano essere letture rilevanti
La RAM è solitamente più veloce di qualsiasi disco rigido. Quindi, prima massimizza la memoria (la velocità effettiva è meno importante) e quindi aggiorna qualsiasi disco non SSD a SSD.
Questo dipenderà anche da altri fattori. Ad esempio, se hai un SSD e non utilizzi mai completamente la RAM esistente durante lo sviluppo, la CPU sarà la soluzione migliore. Se hai molti IDE aperti o il tuo programma utilizza molta RAM, in modo tale che raramente hai spazio libero per la cache, la RAM sarà la soluzione migliore. La maggior parte degli altri scenari saranno da qualche parte nel mezzo.
Una risposta:
#1
+25
Kaslai
2015-10-27 21:19:14 UTC
view on stackexchange narkive permalink

In quasi tutti i casi, con un compilatore moderno e appropriato, la velocità di compilazione aumenterà quasi linearmente con il numero di thread hardware sul sistema. Nel caso dei compilatori Microsoft, anche in esecuzione con 8 GB andrà benissimo, poiché sono abbastanza avari con l'allocazione della memoria. Tuttavia, su * nix, ho limitato anche 16 GB con marca parallela e GCC.

Le moderne architetture di CPU si stanno avvicinando alle massime prestazioni, quindi anche le CPU top della loro classe di tre anni funzioneranno ancora abbastanza adeguatamente rispetto alle moderne CPU di fascia alta. D'altra parte, più RAM avrà sempre un vantaggio ovvio e lineare.

Per risolvere i tuoi problemi specifici, tuttavia:

Delle due CPU che hai specificato, la differenza nei benchmark è abbastanza marginale, con l'unica vera grande differenza che è il consumo energetico, poiché l'i7 è valutato per utilizzare circa 2/3 della potenza. La RAM, d'altra parte, può essere molto utile, specialmente nel caso di Java in cui la JVM adora divorare tutto.

Per darti un'idea ( Fonte ):

  • L'i7-6700 ha la stessa velocità dell'i5-6600k nelle applicazioni a thread singolo (o almeno entro un errore statistico).
  • L'i7-6700 è del 10-15% più veloce con carichi di lavoro multithread completi rispetto all'i5-6600k.
  • L'i7-6700 ha tempi di accesso alla memoria leggermente migliori rispetto all'i5-6600k.

Personalmente, preferirei solo i5 e 16 GB, ma se devi aggiornarne uno o l'altro, scegli la RAM.

Più RAM ha un altro vantaggio: la cache buffer può accumulare più file per te. Non si tratta solo di superare la capacità con conseguente scambio.
@ArekBulski Inoltre, più memoria significa che è possibile creare più spazio per un semplice disco RAM. L'utilizzo (ad esempio) di 512 MB per creare un disco per i file temporanei può aiutare ad aumentare la durata del tuo SSD. Poiché quelle scritture non andranno all'SSD, l'SSD sarà più libero per attività che richiedono un uso intensivo del disco, più spazio libero e (ripetendo) come effetto collaterale, durerà più a lungo. Ma usa un disco RAM usa e getta, creato all'avvio.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...