Unidades SSD y Visual Studio IDE. Grandes mejoras? Historias de uso real, sin teoría

92

Quiero optar por unidades SSD de Windows 7 + Intel para acelerar mi ciclo de desarrollo de Visual Studio 2008.

Las áreas que quiero acelerar son:

  • Tiempos de compilación / construcción
  • Abrir archivos para winforms / webforms
  • "Lentos" generales de Visual Studio para Windows y web

No me interesa la hora de inicio de Visual Studio. Además, el costo por GB no es un problema. Quiero velocidad.

¿Alguien ha probado esto ( unidad SSD + Visual Studio ) ya y qué puede decir sobre las aceleraciones / reducciones?

Conozco la teoría sobre los SSD, pero generalmente la prueba del pudín está en comer. Así que estoy interesado en personas que realmente probaron y probaron una configuración de Visual Studio con SSD ...

Julian de Wit
fuente
Probablemente valga la pena preguntar esto en serverfault.com. Consulte blog.stackoverflow.com/2009/04/server-fault-private-beta-begins para obtener más detalles.
Matthew Murdoch
2
Pensé que se trataba más de programación, pero ciertamente lo consideré. Sin embargo, no quería puntos de referencia, sino una experiencia VS2008 real
Julian de Wit
Lo suficientemente justo. Estaba sugiriendo que también lo preguntaras allí (¡aunque eso podría provocar una guerra de llamas ...!).
Matthew Murdoch
Vaya, se siente interesante encontrar una pregunta anterior a Server Fault saliendo de la versión beta. Estaba buscando algunos beneficios para 2016 (VS es 80 freakin 'conciertos solo y mi futuro SSD de 128GB puede no ser compatible con Windows y VS ...)
Paul Stelian

Respuestas:

80

Tengo datos duros para Visual C # 2008. La versión corta es que lo mejor es gastar su dinero en una CPU más rápida que en E / S más rápidas . Sigue una respuesta más larga ...

Nuestra solución C # (.NET 3.5) contiene 81 proyectos con más de 2 millones de líneas de código (incluidos comentarios y líneas en blanco). Hace un par de años, pasamos de PC Pentium 4 a 3 GHz con HDD estándar a PC Core 2 Duo de 2,6 GHz con HDD WD Raptor de 10,000 RPM (74 GB). La aceleración fue inmensa. Aproximadamente 10 minutos hasta 3,5 minutos. Todo esto en un entorno Windows XP Pro de 32 bits con 4 GB de RAM.

También obtuvimos un Gigabyte i-RAM (busque información en Google), que es básicamente un disco duro RAM con respaldo de batería. A diferencia de un SSD que es rápido para leer pero más lento para escribir, el i-RAM es rápido para ambos, pero si pierde energía, la batería solo dura aproximadamente 12 horas, por lo que debe ser disciplinado con sus controles. Esto redujo otro minuto los tiempos de compilación en la plataforma Core 2 Dou (hasta 2,5 minutos) en comparación con el disco duro Raptor de 10,000 RPM.

Desde entonces, descubrí que esas viejas unidades Raptor de 74 GB a 10,000 RPM son ligeramente más lentas que las unidades modernas de 7,200 RPM de su variedad de jardín y hemos demostrado que la evaluación comparativa se compila constantemente. No hemos probado los nuevos Velociraptors, pero ciertamente serían más rápidos, pero probablemente no lo suficiente como para que valgan la pena solo por los tiempos de compilación.

La semana pasada obtuvimos una nueva plataforma Intel Core i7-870 con un SSD G.Skill Falcon de 128 GB (con el controlador Indilix Barefoot) y un disco duro estándar de 500 GB como segundo disco. También coloqué la i-RAM en esta PC y probé todas las configuraciones.

En comparación con el Core 2 Duo, que se compila en 3,5 minutos para HDD y 2,5 minutos para i-RAM, el i7-870 se compila en 1 minuto y 40 segundos para SSD, HDD e i-RAM más o menos 3 segundos.

Por lo tanto, las dos veces que hemos actualizado las estaciones de trabajo para desarrolladores, la gran mayoría de la mejora del rendimiento en los tiempos de compilación de C # provino de una CPU más rápida en lugar de un disco más rápido. Si desea acelerar los tiempos de compilación, ponga su dinero en la CPU en lugar del disco.

Dicho esto, el SSD es mucho más rápido para cargar Visual Studio y abrir una solución (aunque no tengo tiempos para eso). Si puede pagar un SSD, nunca volverá atrás, ya que todos los programas de su PC se cargan mucho más rápido que es increíble. Pero no acelerará significativamente sus compilaciones. Y eso es con Visual Studio C # de un solo subproceso. Si Microsoft alguna vez se pusiera en marcha e hiciera su compilador en el IDE multiproceso, entonces podríamos usar esos cuatro núcleos ...


Actualización de mayo de 2012: ahora hemos actualizado nuestras PC nuevamente y basándonos en lo que aprendimos antes de enfocarnos en el rendimiento de la CPU. Las nuevas PC tienen CPU Intel Core i7-2600k overclockeadas a 4.6 GHz, con SSD Intel 510 Series 120 GB SATA III, 16 GB de RAM y un enfriador de CPU grande. Sorprendentemente, esto redujo casi a la mitad el tiempo de compilación, y ciertamente lo atribuyo al gran aumento en la potencia de la CPU en lugar del SSD más rápido.

Los resultados de rendimiento de la compilación de C # en Visual Studio 2010 fueron:

  • 159 segundos: Intel Core i7-870 stock (2,9 - 3,3 GHz), 4 GB de RAM con SSD SATA II
  • 109 segundos: Intel Core i7-2600k stock (3.4 - 3.8 GHz) 16 GB de RAM con SSD SATA III
  • 84 segundos: Intel Core i7-2600k overclockeado (4.63 GHz) 16 GB de RAM con SSD SATA III
Ben Robbins
fuente
1
Gracias ... Lástima que ya ordené una computadora monstruo SDD :) Publicaré mis resultados aquí también, pero me temo que serán los mismos resultados.
Julian de Wit
Por cierto, ¿hizo ASP.NET o Winforms?
Julian de Wit
9
Ok, tengo mucho que corregir: en primer lugar, no mencionaste qué SSD estabas usando. Las unidades SSD se conectan directamente a una interfaz SATA2, que iRAM es SATA1 (130 MB / s). Además de esto, el iRAM tiene un controlador limitado, lo que anula el punto. Si tenía 2 en RAID 0, debería obtener velocidades de hasta 200 MB / s. Estoy de acuerdo en que un SSD no mejorará sus tiempos de compilación, pero he visto el estudio visual abierto del SSD en aproximadamente un segundo. Por último, no creo que el iRAM califique como una unidad SSD típica. Sus resultados son engañosos y los hechos son incorrectos.
JL.
13
Necesita leer y posiblemente pensar antes de escribir. En primer lugar, mencioné el SSD que estaba usando, de hecho está en NEGRITA . Sé que el iRAM tiene una interfaz SATA1 y, por lo tanto, es más lento para las lecturas que casi todos los SSD nuevos; lo incluí porque tenía uno para probar y porque en realidad es tan rápido para las escrituras como para las lecturas, lo que la mayoría de los SSD no lo son. ¡No probé con 2 en RAID porque solo tenía 1! También mencioné en el último párrafo que el SSD es mucho más rápido para cargar VS. Entonces, ¿todos los hechos son correctos y los resultados con los que está de acuerdo, pero dice que son engañosos? Interesante ...
Ben Robbins
1
@BenRobbins ¿Evaluó su proyecto C # fuera de VisualStudio, con el indicador / MP?
John Zabroski
27

Acabo de comprar uno y lo único que lamento es no haber comprado un SSD antes.

Los tiempos de compilación ya han estado bien antes, pero ahora todo el IDE es mucho más receptivo. Y no es solo Visual Studio, sino también otras aplicaciones. Es mucho más fácil mantener el flujo cuando todo el sistema funciona tan rápido.

Adrian Grigore
fuente
4
Después de varios meses ... tengo la misma sensación ... Toda la experiencia con la computadora es mejor.
Julian de Wit
11

Como prueba, acabamos de pedir un SSD basado en Sandforce de 90 GB para ver si podría ayudar a nuestros tiempos de construcción. Tenemos un gran proyecto de C ++ que tarda 21 minutos en realizar una reconstrucción completa (una caja Xeon antigua de 3,4 GHz).

Al ejecutar tres pruebas en cada una, la diferencia de tiempo en las compilaciones fue insignificante; del orden de 30 segundos más rápido.

Nuestra caja Xeon 5150 más nueva (!) (Con disco duro) reconstruye el mismo proyecto en ~ 11 minutos, lo que demuestra que la compilación realmente depende de la CPU.

(Esto me sorprendió ya que pensé que el increíble rendimiento de lectura / escritura de 4k y 512k de un SSD sería muy beneficioso en las compilaciones).

usuario528764
fuente
11

Después de largas pruebas de rendimiento, obtuve la mejor configuración aquí, pero para un compilador de C ++. Necesitará:

  • SSD para Windows y archivos de programa (normalmente la unidad C :)
  • 1 TB WD Caviar Black en dos particiones:
    • Unidad D: una pequeña (máximo 35 GB) en los cilindros de arranque que solo tiene una carpeta TEMP; Debe asignar sus variables de entorno TMP y TEMP a D: \ TEMP (¡¡¡esta es realmente importante !!!)
    • Unidad E: con el resto del almacenamiento de la unidad; use esto para el almacenamiento de datos generales, excepto para el desarrollo de software
  • 1 TB WD Caviar Black en cualquier diseño de partición en el que desee almacenar sus proyectos / solución de Visual Studio 2008. Según el uso de Subversion, terminé con cuatro particiones:
    • 820 GB para proyectos troncales y de propósito general
    • 60 GB para una "rama de funciones"
    • 60 GB para una "rama estable" utilizada durante la estabilización del producto
    • 60 GB para una "rama de calidad del producto" que se utiliza para correcciones menores en software aprobado
  • Procesador de 6 u 8 núcleos, con el conmutador de compilador / MP (no se confunda con la función nativa de "compilación de proyectos paralelos" de Visual Studio 2008; no sé por qué el procesador AMD Phenon II funciona tan bien con esta combinación)
  • Windows 7 de 64 bits (no estoy seguro de por qué se ejecuta más rápido en un sistema operativo de 64 bits, incluso con un compilador de 32 bits)
  • Placa base compatible con SATA 3

Esta configuración supera a cualquier otra combinación que haya probado.

Una compilación típica de un gran proyecto modular tendrá los siguientes resultados:

  • Construcción en paralelo sin / MP y HDD regulares: alrededor de 12:00 minutos
  • Esta configuración propuesta: 4:30 minutos
  • Esta configuración, pero alternando con unidades WD Caviar Green: +1: 00 por unidad (5:30 o 6:30 para ambas)
  • Mover partición TEMP a RAMDRIVE: 5:30

Mis conclusiones son las siguientes:

  • No permita que la carpeta TEMP se ejecute en SSD, ya que son malos "escritores" y no tienen una caché de 64 MB comparable dentro de WD Caviar Black
  • El uso de una unidad dedicada que funcione como TEMP permite que ambas unidades WD funcionen en paralelo: la TEMP para los archivos temporales cl.exe y la unidad del proyecto para almacenar * .cpp / h, * .obj, * .lib, * .exe, etc.
  • Los algoritmos de almacenamiento en caché WD Caviar Black son impresionantes, combinados con SATA 6 GB / s, supera a una configuración RAMDRIVE que he probado para la unidad TEMP
  • El particionamiento reduce el impacto en la fragmentación que es inevitable en un entorno de compilador; lo mismo también es válido para la unidad TEMP

Espero que te pueda ayudar.

Mathias A. Gruber
fuente
1
Olvidé decir que el modo SATA debería estar en modo AHCI.
Mathias A. Gruber
1
Sin embargo, no estoy seguro de la parte de la carpeta TEMP. ¿Por qué dice que los SSD son "malos escritores"? Con respecto al tamaño de la caché integrada, suele ser superior a 64 MB (Vertex 4 viene con una caché DRAM de 512 MB, hasta 1 GB para unidades más grandes). Y tus malas experiencias con RAMDRIVE son realmente extrañas. ¿Qué tan grande era? ¿Dónde estaba ubicado su archivo de intercambio? ¿Estás seguro de que no se cambió al disco? La RAM DDR2 promedio tiene 10 veces el ancho de banda de SATA 6GB, sin mencionar que Windows mismo hace el almacenamiento en caché de RAM para escrituras en disco. Y ni siquiera estás hablando de RAID.
Groo
5

Acabo de actualizar una computadora portátil a SSD clonando el disco duro original de 5400 RPM (un proceso sorprendentemente sencillo). Usé un cronómetro para capturar métricas de antes y después. (Dell Inspiron 1525, 3 GB de RAM, Windows Vista de 32 bits)

Arranque / Inicio de Windows

63 segundos -> 52 segundos

Cargando mi solución ASP.NET Visual Studio

En otras palabras, el tiempo desde que hace clic en el archivo .sln hasta que Visual Studio está completamente cargado y puede comenzar a codificar. Hice esto una vez antes de tomar medidas porque la primera vez siempre lleva más tiempo que las siguientes.

16 segundos -> 8 segundos.

Depuración

F5 a la página de inicio completamente cargada.

5 segundos -> 3,5 segundos

James Lawruk
fuente
1
¿Solo redujo el 21% de su tiempo de arranque al pasar de 5400 rpm a SSD? Debería ver un beneficio mucho mayor de eso. ¿Quizás no tiene suficiente RAM en su computadora portátil?
Brian Kendig
@Bria Kendig Gracias, puedo intentarlo. Actualmente tengo 3GB, así que lo máximo que puedo hacer son 4GB.
James Lawruk
Tengo un SSD crucial y mi Win7 se inicia en 15 segundos desde el apagado completo.
atún
¿Cómo cambió su HDD a SSD en una computadora portátil Dell Inspiron?
Karthik Nishanth
Compré software de clonación y destornilladores pequeños en Amazon. lawruk.com/blog/40/cloned-laptop-hard-drive-to-an-crucial-ssd
James Lawruk
5

Consulte el artículo de Joel Spolsky sobre Discos de estado sólido (2009-03-27).

Peter Mortensen
fuente
1
Hola gracias, pero creo que este artículo fue sobre su propio compilador y no sobre VS 2008.
Julian de Wit
4

Cuando compré una computadora nueva, no estaba seguro de qué era lo que hizo que mi experiencia fuera más rápida.

Sin embargo, un colega mío cambió una unidad de disco duro de 7200 RPM por una SSD. De inmediato, Visual Studio (especialmente al iniciar / depurar ASP.NET) fue al menos dos veces más rápido.

Julian de Wit
fuente
2

También he estado considerando esto, y hace un tiempo compré una tarjeta SD rápida , que puedo colocar en la computadora portátil y olvidarme de ella, para que Windows Vista pueda usar la función ReadyBoost . Parece que marca la diferencia, pero ciertamente no es suficiente para justificar la compra de una unidad SSD solo por eso.

Luego comencé a tener problemas al hacer actualizaciones de Subversion , y decidí desechar la idea de ReadyBoost y montar la unidad SD en un punto de montaje donde luego creé todos los archivos de mi proyecto. La tarjeta SD no es muy grande (1 GB), pero ciertamente ha reducido mi tiempo de espera para las compilaciones y hace que la depuración sea un poco más rápida.

La mayor parte de esto es subjetivo y estoy respondiendo una pregunta que quiere hechos, con 'Siento esto' y 'Siento aquello'. Debido a mi experimentación con la ejecución de archivos de Visual Studio desde una unidad diferente, ciertamente creo que marcará la diferencia, cuánto y cuánto estoy dispuesto a pagar por eso es una pregunta que también estoy buscando ansiosamente una respuesta. Mi computadora portátil puede admitir otra unidad de disco duro, y no he podido decidir entre un SDD y una unidad de computadora portátil de 7200 RPM.

Peter Mortensen
fuente
1
Hola, gracias ... He tenido los mismos resultados con cambiar de 7200 a 10,000 velociraptors ... De alguna manera se sintió un poco más rápido pero no revolucionario. Tenía la esperanza de que los SSD fueran revolucionarios ...
Julian de Wit
1
No creo que los Velociraptors sean unidades SSD, solo para ser claros.
Brett