Construyendo una máquina rápida de Visual Studio

28

Quiero construir una PC para ejecutar Visual Studio muy rápidamente. Tengo alrededor de 30 proyectos C # que incluyen servicios WCF, servicios web IIS. Entonces, para mí, rápidamente significa ciclos rápidos de edición, compilación, ejecución y depuración.

¿Cómo debo equilibrar mi inversión en potencia de CPU, memoria y tecnología de manejo al construir una máquina para mis propósitos?

Phillip Ngan
fuente

Respuestas:

19

Nuestro equipo de desarrollo utiliza hardware REALMENTE rápido ... $ 6,000 + por máquina de desarrollo a partir de enero de 2010.

La diferencia MÁS GRANDE que cualquier componente hizo para nosotros (probamos una cosa a la vez) fue agregar E / S realmente rápidas y poner todo nuestro código fuente en ese hardware. Pasamos por unas 10 configuraciones diferentes (varios RAID con VRaptors, SSD, etc.) y el mejor elemento que se nos ocurrió fue el disco IOXtreme de Fusion IO.

http://www.fusionio.com/products/ioxtreme/

Necesitará mucha RAM, ya que el controlador "bloquea" la RAM en grandes cantidades cuanto menor sea el tamaño del bloque formateado en la unidad.

Esos chicos malos no son volátiles y son SUPER rápidos tanto en lecturas aleatorias como en escrituras. Por el dinero, no pudimos hacer que nuestras plataformas se compilen más rápido.

Programaré una compilación muy rápido para darte una idea ...

OK, nuestra solución maestra con TODO el código actualmente tiene 37 proyectos y un total de 92,281 líneas de código "ejecutable" de acuerdo con los resultados de métricas del código de Visual Studio. Compilarlo con la configuración del desarrollador DEFAULT C # en el IDE (solo ha recargado todas las configuraciones para que pueda comparar objetivamente con los valores predeterminados si lo desea) toma 22 segundos. En una máquina idéntica con 3 Velociraptors en RAID 5 tarda 29 segundos, por lo que un aumento del 24%.

Esa prueba se ejecutó con SOLUCIÓN LIMPIA seguida de SOLUCIÓN RECONSTRUCCIÓN, por lo que debería haber sido una compilación completa.

No los conozco a todos, pero compilo con frecuencia después de cambios pequeños a medianos. Probablemente en promedio 80-100 veces por día. Eso significa que SOLO la unidad IOXtreme me está ahorrando 9.3 minutos por día. A $ 70 por hora (nuestra tasa de desarrollo promedio, aproximadamente) eso es $ 10 por día, por desarrollador. Entonces, la cosa tarda unos 90 días en pagarse. No está mal en realidad ... son libres en este punto.

Además, REALMENTE siento firmemente que los tiempos de compilación nunca deben superar el umbral de distracción de un desarrollador. Hazme esperar 2 minutos ... en Wiki o Google o Youtube perdiendo el tiempo. Eso es mucho más difícil de medir.

OK, entonces todos los equipos se ven así:

Windows 7 Professional 12GB RAM 2x Quad Core Xeons (E5504) @ 2.00 GHz. Total de 8 GHz por máquina. Controladores RAID Highpoint 2320 Servidor Mobo (Olvidé el modelo, lo siento) 3x Velociraptors en RAID 5, dividido en unidades C, D y E. Windows en C, programas en D, carpetas de datos de usuario en E. IO Xtreme Drive como Drive F. Todo el código (nuestras DLL y las de terceros) está en Drive F.

¡La mejor de las suertes para todos ustedes!

Eric Burcham
fuente
Genial ... el enlace a esa gama de productos ahora está roto ... ¡las compañías tecnológicas no entienden cómo funciona la web!
Mike Nelson
1
¿Cómo ha cambiado esto en los últimos 6 años? ¿Algún producto nuevo que recomendarías? Supongo que el precio ha bajado significativamente ahora.
TWilly
La máquina cuesta $ 6,000 y ahorra $ 10 por día. ¿Cómo se llega al período de recuperación de 90 días?
mga911
2
+1 para el comentario sobre el "umbral de distracción": la pérdida de productividad puede ser un enorme costo inesperado cuando los tiempos de compilación se vuelven más lentos.
peterflynn
17

Aquí hay una pregunta similar: qué componentes de PC tienen el mayor impacto en sus tiempos de compilación para Visual Studio .

El mayor cuello de botella será la unidad de disco al hacer compilaciones en Visual Studio. A partir de Visual Studio 2008, también puede aprovechar múltiples procesadores o múltiples núcleos durante sus compilaciones. Si fuera yo, iría con lo siguiente:

  • Plataforma Core I7
  • 6+ GB de RAM
  • Windows 7 de 64 bits (es más rápido que Vista )
  • Una unidad de estado sólido rápida
  • ¡Ningún software antivirus activo se está ejecutando durante su construcción!

Otras lecturas:

cowgod
fuente
¡+1 para obtener una respuesta clara, pero no tome cualquier i7, tome las nuevas!
Ivo Flipse
¿Qué pasa con las unidades múltiples: una para O / S, otra para 'Archivos de programa' y otra para 'compilación'? ¿SSD aún superaría esto?
JBRWilkinson
@JBRWilkinson Sí, SSD es el disco más rápido del mercado, siempre que obtenga el tipo correcto.
cowgod
3

Yo uso un ramdrive, de Dataram . Visual Studio no utiliza todos los núcleos de mi PC (8 Core), así que lo que hice fue formatear el disco RAM con NTFS y la compresión activada. El código fuente tiene una alta relación de compresión, por lo que una memoria RAM de 2 GB proporciona al menos 4 GB de almacenamiento. ¡También puede activar el guardado automático de ramdrive! Este método le brinda el IO más rápido, incluso más rápido que el SSD. Sin embargo, notará que cuando el IO no es el cuello de botella, VS es muy pobre en el uso de múltiples núcleos.

Amir Rezaei
fuente
¿Es esto realmente hacer tan buen resultado?
Anirudha Gupta
1
Lo probé y no pude medir ninguna diferencia relevante para un SSD
thumbmunkeys
@thumbmunkeys Uso primocaché y guarda el disco cuando apago mi PC. Todo Leer Escribir hecho en RAM.
Anirudha Gupta
@GuptaAnirudha ¿es más rápido que un SSD?
thumbmunkeys
1
Mi estudio visual funciona más rápido que antes, la primera lectura se realiza desde el disco, por lo que no es rápida la primera vez, pero si ejecuta el mismo proyecto de las últimas 5-6 horas, puede ver la diferencia.
Anirudha Gupta