Unità SSD e IDE di Visual Studio. Grandi miglioramenti? Storie di utilizzo reale, nessuna teoria


92

Voglio utilizzare Windows 7 + unità SSD Intel per accelerare il mio ciclo di sviluppo di Visual Studio 2008.

Le aree che voglio accelerare sono:

  • Tempi di compilazione / compilazione
  • Apertura di file per winforms / webforms
  • Visual Studio generale "lentezza" per Windows e web

Non mi interessa il tempo di avvio di Visual Studio. Anche il costo per GB non è un problema. Voglio velocità.

Qualcuno ha già provato questo ( unità SSD + Visual Studio ) e cosa puoi dire degli aumenti / diminuzioni di velocità?

Conosco la teoria sugli SSD ma di solito la prova del budino è nel mangiare. Quindi sono interessato a persone che hanno effettivamente provato e testato una configurazione di Visual Studio con SSD ...


Probabilmente vale la pena chiederlo su serverfault.com. Vedi blog.stackoverflow.com/2009/04/server-fault-private-beta-begins per i dettagli.
Matthew Murdoch

2
Pensavo che si trattasse più di programmazione, ma sicuramente l'ho considerato. Tuttavia non volevo benchmark ma una vera esperienza VS2008
Julian de Wit

Giusto. Ti stavo suggerendo di chiederlo anche lì (anche se questo potrebbe innescare una guerra di fiamme ...!).
Matthew Murdoch

Wow, è interessante trovare una domanda più vecchia di Server Fault che esce dalla beta. Stavo cercando alcuni vantaggi per il 2016 (VS è 80 concerti da solo e il mio futuro SSD da 128 GB potrebbe non adattarsi sia a Windows che a VS ...)
Paul Stelian

Risposte:


80

Ho dati concreti per Visual C # 2008. La versione breve è che è meglio spendere i propri soldi per una CPU più veloce rispetto a un I / O più veloce . Segue una risposta più lunga ...

La nostra soluzione C # (.NET 3.5) contiene 81 progetti con oltre 2 milioni di righe di codice (inclusi commenti e righe vuote). Un paio di anni fa siamo passati da PC Pentium 4 3 GHz con HDD standard a PC Core 2 Duo 2.6 GHz con HDD WD Raptor da 10.000 RPM (74 GB). L'accelerazione è stata immensa. Da circa 10 minuti a 3,5 minuti. Tutto questo in un ambiente Windows XP Pro a 32 bit con 4 GB di RAM.

Abbiamo anche un Gigabyte i-RAM (google per informazioni), che è fondamentalmente un disco rigido RAM con batteria di backup. A differenza di un SSD che è veloce per la lettura ma più lento per la scrittura, l'i-RAM è veloce per entrambi, ma se perdi energia la batteria dura solo circa 12 ore, quindi devi essere disciplinato con i tuoi check-in. Ciò ha ridotto di un altro minuto i tempi di compilazione sulla piattaforma Core 2 Dou (fino a 2,5 minuti) rispetto all'HDD Raptor da 10.000 RPM.

Da allora ho scoperto che quelle vecchie unità Raptor da 74 GB da 10.000 RPM sono leggermente più lente delle unità moderne da 7.200 RPM della tua varietà da giardino e abbiamo dimostrato che il benchmarking compila costantemente. Non abbiamo provato i nuovi Velociraptor, ma sarebbero sicuramente più veloci ma probabilmente non abbastanza da valerne la pena solo per i tempi di compilazione.

La scorsa settimana abbiamo ottenuto una nuova piattaforma Intel Core i7-870 con un SSD G.Skill Falcon da 128 GB (con il controller Indilix Barefoot) e un HDD standard da 500 GB come seconda unità. Ho anche gettato l'i-RAM in questo PC e ho testato tutte le configurazioni.

Rispetto al Core 2 Duo, che ha compilato in 3,5 minuti per HDD e 2,5 minuti per i-RAM, l'i7-870 si compila in 1 min e 40 secondi per SSD, HDD e i-RAM danno o prendono 3 secondi.

Quindi entrambe le volte che abbiamo aggiornato le workstation degli sviluppatori, la stragrande maggioranza del miglioramento delle prestazioni nei tempi di compilazione C # è derivato da una CPU più veloce piuttosto che da un disco più veloce. Se vuoi velocizzare i tempi di compilazione, metti i tuoi soldi nella CPU invece che nel disco.

Detto questo, l'SSD è molto più veloce per caricare Visual Studio e aprire una soluzione (anche se non ho i tempi per questo). Se puoi permetterti un SSD non tornerai mai indietro poiché ogni programma sul tuo PC si carica molto più velocemente è incredibile. Ma non accelererà in modo significativo le tue compilazioni. E questo con Visual Studio C # a thread singolo. Se Microsoft riuscisse mai a mettere insieme il loro lavoro e realizzasse il loro compilatore nell'IDE multi-threaded, allora potremmo effettivamente usare quei quattro core ...


Aggiornamento maggio 2012: ora abbiamo nuovamente aggiornato i nostri PC e in base a ciò che abbiamo appreso prima di concentrarci sulle prestazioni della CPU. I nuovi PC hanno CPU Intel Core i7-2600k overcloccate a 4,6 GHz, con SSD SATA III da 120 GB della serie Intel 510, 16 GB di RAM e un ampio dissipatore per CPU! Sorprendentemente questo ha quasi dimezzato il tempo di compilazione, e certamente lo attribuisco all'aumento molto grande della potenza della CPU piuttosto che all'SSD più veloce.

I risultati della compilazione C # in Visual Studio 2010 sono stati:

  • 159 secondi: Intel Core i7-870 stock (2,9 - 3,3 GHz), 4 GB di RAM con SSD SATA II
  • 109 secondi: Intel Core i7-2600k stock (3,4 - 3,8 GHz) 16 GB di RAM con SSD SATA III
  • 84 secondi: Intel Core i7-2600k overcloccato (4,63 GHz) 16 GB di RAM con SSD SATA III

1
Grazie .. Peccato che ho già ordinato un monster computer SDD :) Pubblicherò anche i miei risultati qui ma temo che saranno gli stessi risultati.
Julian de Wit,

A proposito, hai fatto ASP.NET o Winforms?
Julian de Wit

9
Ok, devo correggere: in primo luogo, non hai menzionato quale SSD stavi usando. Le unità SSD si collegano direttamente a un'interfaccia SATA2, che iRAM è SATA1 (130 MB / s). Oltre a questo l'iRAM ha un controller limitato, che sconfigge il punto. Se ne avevi 2 in RAID 0, dovresti ottenere velocità fino a 200 MB / s. Sono d'accordo sul fatto che un SSD non migliorerà i tempi di compilazione, ma ho visto l'SSD aprire uno studio visivo in circa un secondo. Infine non credo che l'iRAM si qualifichi come un tipico drive SSD. I tuoi risultati sono fuorvianti e i fatti sono sbagliati.
JL.

13
Devi leggere e possibilmente pensare prima di digitare. In primo luogo, ho menzionato l'SSD che stavo usando, infatti è in GRASSETTO . So che l'iRAM ha un'interfaccia SATA1 ed è quindi più lento per le letture rispetto a quasi tutti gli SSD nuovi - l'ho incluso perché ne avevo uno da testare e perché in realtà è veloce sia per le scritture che per le letture, cosa che la maggior parte degli SSD non lo sono. Non ho provato con 2 in RAID perché ne avevo solo 1! Ho anche menzionato nell'ultimo paragrafo che l'SSD è molto più veloce per caricare VS. Quindi i fatti sono tutti corretti ei risultati con cui sei d'accordo, ma dici che sono fuorvianti? Interessante ...
Ben Robbins

1
@ BenRobbins Hai valutato il tuo progetto C # al di fuori di VisualStudio, con il flag / MP?
John Zabroski

27

Ne ho appena comprato uno e l'unico rimpianto che ho è non aver acquistato un SSD prima.

I tempi di compilazione sono già stati buoni prima, ma ora l'intero IDE è molto più reattivo. E non è solo Visual Studio, ma anche altre applicazioni. È molto più facile rimanere nel flusso quando l'intero sistema funziona così rapidamente.


4
Dopo alcuni mesi ... ho la stessa sensazione ... L'intera esperienza con il computer è migliore.
Julian de Wit

11

Come test, abbiamo appena ordinato un SSD basato su Sandforce da 90 GB per vedere se poteva aiutare i nostri tempi di costruzione. Abbiamo un grande progetto C ++ che richiede 21 minuti per eseguire una ricostruzione completa (una vecchia scatola Xeon da 3,4 GHz.)

Eseguendo tre test su ciascuno, la differenza di tempo nelle build era trascurabile; nell'ordine di 30 secondi più veloce.

La nostra nuova (!) Scatola Xeon 5150 (con disco rigido) ricostruisce lo stesso progetto in ~ 11 minuti, il che dimostra che la compilazione è davvero vincolata alla CPU.

(Questo mi ha sorpreso dal momento che ho pensato che le fantastiche prestazioni di lettura / scrittura 4k e 512k di un SSD sarebbero state estremamente vantaggiose nelle build.)


11

Dopo lunghi test delle prestazioni ho ottenuto la migliore configurazione qui, ma per un compilatore C ++. Avrai bisogno:

  • SSD per Windows e file di programma (in genere l'unità C:)
  • 1 TB WD Caviar Black in due partizioni:
    • Drive D: Uno minuscolo (max 35 GB) ai cilindri di avvio con solo una cartella TEMP; Dovresti mappare le tue variabili d'ambiente TMP e TEMP su D: \ TEMP (questa è davvero importante !!!)
    • Unità E: con il resto della memoria dell'unità; usalo per l'archiviazione generale dei dati, eccetto per lo sviluppo del software
  • 1 TB WD Caviar Black in qualsiasi layout di partizione in cui desideri archiviare i tuoi progetti / soluzioni Visual Studio 2008. Sulla base dell'utilizzo di Subversion ho finito con quattro partizioni:
    • 820 GB per trunk e progetti generici
    • 60 GB per un "feature branch"
    • 60 GB per un "ramo stabile" utilizzato durante la stabilizzazione del prodotto
    • 60 GB per un "ramo della qualità del prodotto" utilizzato per correzioni minori sul software approvato
  • Processore a 6 o 8 core, utilizzando il commutatore del compilatore / MP, (non confondetevi con la funzionalità di "costruzione di progetti paralleli" nativa di Visual Studio 2008 - Non so perché il processore AMD Phenon II funzioni così bene con questa combinazione)
  • Windows 7 64 bit (non sono esattamente sicuro del motivo per cui funziona più velocemente in un sistema operativo a 64 bit, anche utilizzando un compilatore a 32 bit)
  • Scheda madre compatibile SATA 3

Questa configurazione supera qualsiasi altra combinazione che ho testato.

Una tipica compilazione di un enorme progetto modulare avrà i seguenti risultati:

  • Costruzione parallela senza / MP e HDD normali: circa 12:00 minuti
  • Questa impostazione proposta: 4:30 minuti
  • Questa configurazione, ma utilizzando l'alternanza alle unità WD Caviar Green: +1: 00 per unità (5:30 o 6:30 per entrambe)
  • Spostamento della partizione TEMP su una RAMDRIVE: 5:30

Le mie conclusioni sono le seguenti:

  • Non lasciare che la cartella TEMP venga eseguita in SSD, poiché sono cattivi "scrittori" e non hanno una cache da 64 MB comparabile all'interno di WD Caviar Black
  • L'utilizzo di un'unità dedicata che funziona come TEMP consente a entrambe le unità WD di funzionare in parallelo: TEMP per i file temporanei cl.exe e l'unità del progetto per memorizzare * .cpp / h, * .obj, * .lib, * .exe, ecc.
  • Gli algoritmi di cache WD Caviar Black sono impressionanti, combinati con SATA 6 GB / s, superano una configurazione RAMDRIVE che ho testato per l'unità TEMP
  • Il partizionamento riduce l'impatto sulla frammentazione che è inevitabile in un ambiente di compilazione; lo stesso vale anche per il drive TEMP

Spero di poterti aiutare.


1
Ho dimenticato di dire che la modalità SATA dovrebbe essere in modalità AHCI.
Mathias A. Gruber

1
Tuttavia, non sono sicuro della parte della cartella TEMP. Perché dici che gli SSD sono "cattivi scrittori"? Per quanto riguarda la dimensione della cache integrata, di solito è superiore a 64 MB (Vertex 4 viene fornito con 512 MB di cache DRAM, fino a 1 GB per unità più grandi). E le tue brutte esperienze con RAMDRIVE sono davvero strane. Quanto era grande? Dove si trovava il file di scambio? Sei sicuro che non sia stato scambiato su disco? La RAM DDR2 media ha una larghezza di banda 10 volte superiore a quella di SATA 6 GB, per non parlare del fatto che Windows stesso esegue la cache RAM per le scritture su disco. E non parli nemmeno di RAID.
Groo

5

Ho appena aggiornato un laptop a SSD clonando il disco rigido originale da 5400 RPM (sorprendentemente un processo indolore). Ho usato un cronometro per acquisire le metriche prima e dopo. (Dell Inspiron 1525, 3 GB di RAM, Windows Vista a 32 bit)

Avvio / avvio di Windows

63 secondi -> 52 secondi

Caricamento della mia soluzione ASP.NET Visual Studio

In altre parole, il tempo che intercorre tra il clic sul file .sln e il caricamento completo di Visual Studio e l'inizio della codifica. L'ho eseguito una volta prima di effettuare le misurazioni perché la prima volta richiede sempre più tempo rispetto alle volte successive.

16 secondi -> 8 secondi.

Debug

F5 alla home page completamente caricata.

5 secondi -> 3,5 secondi


1
Hai ridotto solo del 21% il tempo di avvio passando da 5400 rpm a SSD? Dovresti vedere un vantaggio molto maggiore da questo. Forse non hai abbastanza RAM nel tuo laptop?
Brian Kendig

@Bria Kendig Grazie, posso provare. Al momento ho 3 GB, quindi il massimo che posso utilizzare è 4 GB.
James Lawruk

Ho un SSD cruciale e il mio Win7 si avvia in 15 secondi dallo spegnimento completo.
tonno 24

Come hai cambiato il tuo HDD in SSD in un notebook Dell Inspiron?
Karthik Nishanth

Ho acquistato un software di clonazione e piccoli cacciaviti da Amazon. lawruk.com/blog/40/cloned-laptop-hard-drive-to-an-crucial-ssd
James Lawruk


4

Quando ho acquistato un nuovo computer non ero sicuro di quale fosse la cosa che ha reso la mia esperienza più veloce.

Tuttavia, un mio collega ha cambiato un disco rigido da 7200 RPM per un SSD. Immediatamente Visual Studio (in particolare l'avvio / debug di ASP.NET) è stato almeno due volte più veloce!


2

Ho anche pensato a questo, e qualche tempo fa ho comprato una rapida scheda SD , che posso attaccare al laptop e dimenticarmene, in modo che Windows Vista possa utilizzare la funzionalità ReadyBoost . Sembra che faccia la differenza, ma non è certamente sufficiente per giustificare l'acquisto di un'unità SSD solo per questo.

Ho quindi iniziato a riscontrare problemi durante gli aggiornamenti di Subversion e ho deciso di eliminare l'idea di ReadyBoost e montare l'unità SD su un punto di montaggio in cui ho quindi creato tutti i miei file di progetto. La scheda SD non è molto grande (1 GB), ma ha sicuramente ridotto il mio tempo di attesa per le build e rende il debug un po 'più veloce.

La maggior parte di questo è soggettivo e rispondo a una domanda che vuole fatti, con "Sento questo" e "Sento quello". A causa della mia sperimentazione con l'esecuzione di file di Visual Studio da un'unità diversa, credo sicuramente che farà la differenza, quanto e quanto sono disposto a pagare per questa è una domanda che sto anche cercando ardentemente una risposta. Il mio notebook può ospitare un'altra unità disco rigido e non sono riuscito a decidere tra un'unità SDD e un'unità portatile da 7200 RPM.


1
Ciao, grazie .. Ho ottenuto più o meno gli stessi risultati passando da 7200 a 10.000 velociraptor .. In qualche modo mi è sembrato un po 'più veloce ma non rivoluzionario. Speravo che gli SSD fossero rivoluzionari ..
Julian de Wit

1
Non credo che i Velociraptor siano unità SSD, solo per essere chiari.
Brett
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.