Pregunta ¿Cuál es la CPU o RAM más importante para compilar un software grande, p. bootstrapping gcc?


Estoy buscando comprar una computadora nueva pronto, y quiero una máquina para obtener el mejor rendimiento para tiempos de compilación rápidos.

Entonces, ¿debería importarme una CPU de cuatro núcleos con la GHz más alta que pueda pagar, o debería invertir en una RAM de mayor velocidad?

¿Cuál es su recomendación para qué tipo de RAM debería elegir?

El rendimiento de gráficos no importa, compilando un montón de software y ejecutando simulaciones matemáticas.


9


origen




Respuestas:


Yo diría que ninguno. Más bien obtener un disco duro SSD rápido. Por supuesto, también necesita una CPU adecuada y la cantidad de RAM, pero sí ...


7



Bueno, no obtuve una SSD, en cambio obtuve 32 GB de RAM y compilamos todo en RAM en tmpfs ... incluso más rápido que SSD =) - Dima
Bueno, esa es la misma idea: p - Svish
Estoy en desacuerdo. Obtuve un disco SSD para mi computadora portátil y no hubo mucha diferencia en la velocidad de compilación. Por otro lado, obtener una computadora nueva con casi el triple de velocidad de CPU y solo 4 GB frente a 6 GB en la máquina SSD hizo que compilar casi 3 veces más rápido. anandtech.com/show/2829/25no encuentra una mejora notoria en la velocidad del compilador con un SSD mientras blog.hypercomplex.co.uk/index.php/2010/06/... encuentra una mejora del 23%. Me parece lógico que si tienes suficiente memoria, compilar implica muy poco uso del disco. - Chris Dragon
Otro pensamiento es que es posible que algunos compiladores usen muchos archivos temporales para compilar en lugar de memoria, en cuyo caso, una SSD o ramdisk serían los más útiles. Sin embargo, no esperaría que los compiladores modernos se diseñen de esa manera ahora que la memoria es barata y grande y el sistema maneja el paginado en el disco cuando se agota. Usando XCode 3.2.6 (basado en gcc 3 o 4), SSD tuvo poco beneficio. - Chris Dragon
Un SSD hace una diferencia considerable en proyectos / soluciones grandes que utilizan mucho copiar / mover archivos. No he usado RAM tmpfs-style, personalmente, pero he escuchado cosas buenas al respecto. Para proyectos más pequeños, probablemente esté bien. Para los grandes? Podría ser insuficiente. - kayleeFrye_onDeck


Probablemente, la RAM te dará una mayor ganancia por el dinero. La compilación, especialmente las aplicaciones grandes, es muy intensiva en E / S, y tener más RAM significa que puede ahorrar más tiempo de paginación hacia y desde el disco. La mayoría de las CPU de hoy en día, especialmente si tiene un núcleo cuádruple barato, proporcionará una gran cantidad de potencia de CPU para su compilación, pero contar con la memoria RAM lo ayudará a avanzar y retroceder en los datos.

En segundo lugar, depende de tus simulaciones matemáticas y procesos de construcción. ¿Son paralelizables? De lo contrario, agregar más núcleos no hará nada para acelerarlo, aunque los nuevos chips Intel (Core i7) son bastante rápidos por núcleo.


4





Los gráficos bien podrían ayudar porque una tarjeta gráfica con una CPU puede reducir la carga en la CPU principal. La potencia de la CPU es probablemente más importante que la RAM, pero cuanto mejores sean, mejor será.


1



Buen punto, solo si el proceso podría usar núcleos CUDA, que la mayoría no. - NoBugs


Yo diría que obtengan montones y montones de RAM y usen ramdisks para almacenamiento temporal. Esto aumentará drásticamente la velocidad de compilación. Una CPU rápida de varios núcleos también estaría bien, pero creo que se beneficiarían más de muchos RAM. Echa un vistazo a esta artículo para algunas ideas. aquíhay algo más de información y algo más aquí. Creo que usar RAM será más rápido que usar SSD, pero podría estar equivocado.


1





Para sus cálculos, su procesador es con mucho el más importante.

La compilación hará hincapié en su procesador y RAM.

Creo que la solución más rentable sería obtener la mejor CPU que pueda, y preferiblemente un Quad core. Con la memoria RAM tan barata como es (DDR3 es ahora tan barato como DDR2), puedes conectar fácilmente tanta RAM como necesites para monedas pequeñas (16 GB de DDR3 por $ 180 en newegg ... Me doy cuenta de que es exagerado, solo tratando de demostrar lo barato que es). Así que invertiría tanto como pueda en una CPU de calidad como sea posible.


1



Gastar más dinero para obtener una CPU más rápida es un buen consejo. Pero no gastar más dinero para obtener más núcleos. GCC hace toda su compilación en un solo hilo, por lo que nunca utiliza más de un núcleo. - Isaac Rabinovitch
@Isaac Sí, pero el sistema de compilación generalmente puede generar múltiples trabajos gcc simultáneamente, por ejemplo make con el -j opción. Además, creo que llvm puede o será capaz de compilar un solo archivo utilizando múltiples hilos. - Ponkadoodle
@Wallacoloo OK, puedes a veces obtener un poco más de velocidad cuando tiene archivos que son paralelos en el gráfico de dependencia. Aún así, creo que los núcleos extra son un factor bastante menor cuando se trata de acelerar una construcción. Difícil de decir, ya que los núcleos adicionales son una característica estándar en las CPU más nuevas que hacer acelerar las cosas simplemente marcando más rápido. Si quieres demostrar que estoy equivocado, intenta hacer una compilación grande con y sin -j. - Isaac Rabinovitch
@IsaacRabinovitch En realidad, en bases de código grande, importa mucho. En nuestra base de código, el tiempo de compilación se reduce casi linealmente con distcc (make -j8 (localmente) hasta make -j30 (distribuido a través de la red)) - Alex