Dyski SSD i Visual Studio IDE. Duże ulepszenia? Prawdziwe historie użycia, bez teorii

92

Chcę wybrać dyski SSD z systemem Windows 7 + Intel, aby przyspieszyć cykl rozwoju programu Visual Studio 2008.

Obszary, które chcę przyspieszyć, to:

  • Czas kompilacji / kompilacji
  • Otwieranie plików dla winforms / webforms
  • Ogólne „powolne działanie” programu Visual Studio dla systemu Windows i sieci Web

Nie interesuje mnie czas uruchamiania programu Visual Studio. Również koszt za GB nie jest problemem. Chcę szybkości.

Czy ktoś już tego próbował ( dysk SSD + Visual Studio ) i co możesz powiedzieć o przyspieszeniach / spadkach?

Znam teorię na temat dysków SSD, ale zwykle dowód na pudding jest w jedzeniu. Dlatego interesują mnie osoby, które faktycznie wypróbowały i przetestowały konfigurację Visual Studio z dyskiem SSD ...

Julian de Wit
źródło
Chyba warto zapytać o to na serverfault.com. Aby uzyskać szczegółowe informacje, zobacz blog.stackoverflow.com/2009/04/server-fault-private-beta-begins .
Matthew Murdoch
2
Myślałem, że chodzi bardziej o programowanie, ale z pewnością to rozważałem. Jednak nie chciałem benchmarków, ale prawdziwego doświadczenia VS2008
Julian de Wit
Słusznie. Sugerowałem, że zapytałeś o to również tam (chociaż może to wywołać wojnę płomieni ...!).
Matthew Murdoch
Wow, ciekawie jest znaleźć pytanie starsze niż błąd serwera podczas wychodzenia z wersji beta. Szukałem korzyści na 2016 rok (VS to 80 szalonych koncertów, a mój przyszły dysk SSD 128 GB może nie pasować zarówno do systemu Windows, jak i VS ...)
Paul Stelian

Odpowiedzi:

80

Mam twarde dane dla Visual C # 2008. Krótka wersja jest taka, że jesteś najlepszy wydatkowania pieniędzy na szybszym procesorem szybszym niż I / O . Następuje dłuższa odpowiedź ...

Nasze rozwiązanie w języku C # (.NET 3.5) zawiera 81 projektów z ponad 2 milionami wierszy kodu (w tym komentarze i puste wiersze). Kilka lat temu zaktualizowaliśmy komputery PC z procesorem Pentium 4 3 GHz ze standardowymi dyskami twardymi do komputerów z procesorem Core 2 Duo 2,6 GHz i dyskami twardymi WD Raptor o prędkości 10 000 obr./min (74 GB). Przyspieszenie było ogromne. Około 10 minut do 3,5 minuty. Wszystko to w 32-bitowym środowisku Windows XP Pro z 4 GB pamięci RAM.

Mamy też jeden gigabajtowy i-RAM (wygoogluj go w celu uzyskania informacji), który jest w zasadzie dyskiem twardym RAM z podtrzymaniem bateryjnym. W przeciwieństwie do dysku SSD, który jest szybki do odczytu, ale wolniejszy do zapisu, i-RAM jest szybki dla obu, ale jeśli stracisz energię, bateria wystarcza tylko na około 12 godzin, więc musisz być zdyscyplinowany podczas sprawdzania. Skróciło to o kolejną minutę czas kompilacji na platformie Core 2 Dou (do 2,5 minuty) w porównaniu z dyskiem twardym Raptor o prędkości 10 000 obr./min.

Od tamtej pory odkryłem, że te stare dyski Raptor o pojemności 74 GB i prędkości 10 000 obr./min są nieco wolniejsze od nowoczesnych dysków 7200 obr./min. Nie próbowaliśmy nowych Velociraptorów, ale z pewnością byłyby one szybsze, ale prawdopodobnie niewystarczające, aby były tego warte tylko w czasie kompilacji.

W zeszłym tygodniu otrzymaliśmy nową platformę Intel Core i7-870 z dyskiem SSD G.Skill Falcon 128 GB (z kontrolerem Indilix Barefoot) i standardowym dyskiem twardym 500 GB jako drugim dyskiem. Wrzuciłem też i-RAM do tego komputera i przetestowałem wszystkie konfiguracje.

W porównaniu z Core 2 Duo, który skompilował się w 3,5 minuty dla dysku twardego i 2,5 minuty dla i-RAM, i7-870 kompiluje się w ciągu 1 minuty i 40 sekund dla dysku SSD, HDD i i-RAM, co daje lub zajmuje 3 sekundy.

Tak więc za każdym razem, gdy aktualizowaliśmy stacje robocze programistów, zdecydowana większość poprawy wydajności w czasie kompilacji C # pochodziła z szybszego procesora, a nie z szybszego dysku. Jeśli chcesz przyspieszyć czas kompilacji, włóż pieniądze do procesora, a nie do dysku.

To powiedziawszy, dysk SSD jest znacznie szybszy do ładowania programu Visual Studio i otwierania rozwiązania (chociaż nie mam na to czasu). Jeśli możesz sobie pozwolić na dysk SSD, nigdy nie wrócisz, ponieważ każdy program na twoim komputerze ładuje się o wiele szybciej, że jest niesamowity. Ale nie przyspieszy to znacząco twoich kompilacji. I to jest w przypadku programu Visual Studio C #, który jest jednowątkowy. Gdyby Microsoft kiedykolwiek zebrał się razem i stworzył kompilator w wielowątkowym środowisku IDE, moglibyśmy faktycznie użyć tych czterech rdzeni ...


Aktualizacja z maja 2012 r .: Teraz ponownie zaktualizowaliśmy nasze komputery i opierając się na tym, czego się nauczyliśmy, zanim skupiliśmy się na wydajności procesora. Nowe komputery mają procesory Intel Core i7-2600k podkręcone do 4,6 GHz, z dyskiem SSD Intel 510 Series 120 GB SATA III, 16 GB pamięci RAM i dużą chłodnicą procesora! Zaskakujące jest to prawie połowę czas kompilacji iz pewnością przypisuję to bardzo dużemu wzrostowi mocy procesora, a nie szybszemu dyskowi SSD.

Wyniki kompilacji C # w programie Visual Studio 2010 były następujące:

  • 159 sekund: zapasowy procesor Intel Core i7-870 (2,9 - 3,3 GHz), 4 GB RAM z SATA II SSD
  • 109 sekund: zapasowy Intel Core i7-2600k (3,4 - 3,8 GHz) 16 GB RAM z SATA III SSD
  • 84 sekundy: przetaktowany procesor Intel Core i7-2600k (4,63 GHz), 16 GB RAM z SATA III SSD
Ben Robbins
źródło
1
Dzięki ... Szkoda, że ​​już zamówiłem komputer typu monster z SDD :) Opublikuję tutaj również swoje wyniki, ale obawiam się, że będą takie same.
Julian de Wit
Nawiasem mówiąc, robiłeś ASP.NET lub WinForms?
Julian de Wit
9
Ok - wiele do poprawienia: Po pierwsze - nie wspomniałeś, jakiego dysku SSD używasz. Dyski SSD łączą się bezpośrednio z interfejsem SATA2, że iRAM to SATA1 (130 MB / s). Poza tym iRAM ma ograniczony kontroler, co mija się z celem. Gdybyś miał 2 w RAID 0, powinieneś uzyskać prędkość do 200 MB / s. Zgadzam się, że dysk SSD nie poprawi czasu kompilacji, ale widziałem, jak otwiera się studio wizualne SSD w około sekundę. Wreszcie nie sądzę, aby iRAM kwalifikował się jako typowy dysk SSD. Twoje wyniki są mylące, a fakty są błędne.
JL.
13
Przed rozpoczęciem pisania musisz przeczytać i ewentualnie pomyśleć. Po pierwsze, wspomniałem o dysku SSD, którego używałem, w rzeczywistości jest on pogrubiony . Wiem, że iRAM ma interfejs SATA1 i dlatego jest wolniejszy do odczytu niż prawie wszystkie nowe dyski SSD - włączyłem go, ponieważ miałem jeden do przetestowania i ponieważ jest tak samo szybki do zapisu, jak do odczytu, czego większość dysków SSD nie jest. Nie testowałem z 2 w RAID, ponieważ miałem tylko 1! Wspomniałem również w ostatnim akapicie, że dysk SSD jest znacznie szybszy do ładowania VS. A więc wszystkie fakty są poprawne, a wyniki, z którymi się zgadzasz, ale twierdzisz, że wprowadzają w błąd? Ciekawe ...
Ben Robbins,
1
@BenRobbins Czy wykonałeś test porównawczy projektu C # poza VisualStudio, z flagą / MP?
John Zabroski
27

Właśnie kupiłem jeden i żałuję tylko, że nie kupiłem wcześniej dysku SSD.

Czasy kompilacji były już w porządku, ale teraz całe IDE jest znacznie bardziej responsywne. I to nie tylko Visual Studio, ale także inne aplikacje. O wiele łatwiej jest utrzymać płynność, gdy cały system działa tak szybko.

Adrian Grigore
źródło
4
Po kilku miesiącach… mam to samo uczucie… Całe doświadczenie z komputerem jest lepsze.
Julian de Wit
11

W ramach testu właśnie zamówiliśmy dysk SSD o pojemności 90 GB oparty na Sandforce, aby sprawdzić, czy może to pomóc w naszych czasach kompilacji. Mamy duży projekt w C ++, którego pełna przebudowa zajmuje 21 minut (starsze urządzenie Xeon 3,4 GHz).

Po wykonaniu trzech testów na każdym z nich różnica czasu w kompilacjach była pomijalna; o 30 sekund szybciej.

Nasz nowszy (!) Xeon 5150 (z dyskiem twardym) odbudowuje ten sam projekt w ~ 11 minut, co pokazuje, że kompilacja naprawdę jest związana z procesorem.

(Zaskoczyło mnie to, ponieważ pomyślałem, że niesamowita wydajność odczytu / zapisu dysku SSD 4k i 512k byłaby bardzo korzystna w kompilacjach).

user528764
źródło
11

Po długich testach wydajności uzyskałem tutaj najlepszą konfigurację, ale dla kompilatora C ++. Będziesz potrzebować:

  • Dysk SSD dla systemu Windows i pliki programów (zazwyczaj dysk C :)
  • 1 TB WD Caviar Black w dwóch przegrodach:
    • Dysk D: Malutki (maks. 35 GB) na cylindrach początkowych, mający tylko folder TEMP; Powinieneś zmapować swoje zmienne środowiskowe TMP i TEMP na D: \ TEMP (ten jest naprawdę ważny !!!)
    • Dysk E: z pozostałą częścią pamięci dysku; używaj tego do ogólnego przechowywania danych, z wyjątkiem tworzenia oprogramowania
  • 1 TB WD Caviar Black w dowolnym układzie partycji, na którym chcesz przechowywać projekty / rozwiązania Visual Studio 2008. Na podstawie użycia Subversion otrzymałem cztery partycje:
    • 820 GB dla projektów trunk i ogólnego przeznaczenia
    • 60 GB na „gałąź funkcji”
    • 60 GB na „stabilną gałąź” używaną podczas stabilizacji produktu
    • 60 GB na „gałąź jakości produktu”, używane do drobnych poprawek zatwierdzonego oprogramowania
  • 6-rdzeniowy lub 8-rdzeniowy procesor, korzystający z przełącznika kompilatora / MP (nie daj się zmylić z natywną funkcją „równoległego budowania projektów” programu Visual Studio 2008 - nie wiem, dlaczego procesor AMD Phenon II działa tak dobrze z ta kombinacja)
  • Windows 7 64 bity (nie jestem do końca pewien, dlaczego działa szybciej w 64-bitowym systemie operacyjnym, nawet przy użyciu 32-bitowego kompilatora)
  • Płyta główna kompatybilna z SATA 3

Ta konfiguracja przewyższa każdą inną kombinację, którą testowałem.

Typowa kompilacja dużego projektu modułowego przyniesie następujące rezultaty:

  • Równoległa kompilacja bez / MP i zwykłych dysków twardych: około 12:00 minut
  • Ta proponowana konfiguracja: 4:30 minut
  • Ta konfiguracja, ale przy użyciu naprzemiennie dysków WD Caviar Green: +1:00 na dysk (5:30 lub 6:30 dla obu)
  • Przenoszenie partycji TEMP na RAMDRIVE: 5:30

Moje wnioski są następujące:

  • Nie pozwól, aby folder TEMP działał na dysku SSD, ponieważ są złymi „piszącymi” i nie mają porównywalnej 64 MB pamięci podręcznej w WD Caviar Black
  • Użycie dedykowanego dysku działającego jako TEMP umożliwia równoległą pracę obu dysków WD: TEMP dla plików tymczasowych cl.exe i napęd projektu do przechowywania * .cpp / h, * .obj, * .lib, * .exe itp.
  • Algorytmy buforowania WD Caviar Black są imponujące, w połączeniu z SATA 6 GB / s przewyższają konfigurację RAMDRIVE, którą przetestowałem dla dysku TEMP
  • Partycjonowanie zmniejsza wpływ na fragmentację, która jest nieunikniona w środowisku kompilatora; to samo dotyczy również napędu TEMP

Mam nadzieję, że mogę ci pomóc.

Mathias A. Gruber
źródło
1
Zapomniałem powiedzieć, że tryb SATA powinien być w trybie AHCI.
Mathias A. Gruber
1
Nie jestem jednak pewien co do części folderu TEMP. Dlaczego mówisz, że dyski SSD są „złymi pisarzami”? Jeśli chodzi o rozmiar wbudowanej pamięci podręcznej, jest ona zwykle większa niż 64 MB (Vertex 4 jest wyposażony w 512 MB pamięci podręcznej DRAM, do 1 GB w przypadku większych dysków). A twoje złe doświadczenia z RAMDRIVE są naprawdę dziwne. Jak duże to było? Gdzie znajdował się twój plik wymiany? Czy na pewno nie został zamieniony na dysk? Przeciętna pamięć RAM DDR2 ma 10-krotnie większą przepustowość niż SATA 6 GB, nie wspominając o tym, że sam system Windows obsługuje pamięć podręczną RAM dla zapisów na dysku. I to nawet nie jest RAID, o którym mówisz.
Groo,
5

Właśnie zaktualizowałem laptopa do SSD, klonując oryginalny dysk twardy 5400 obr./min (zaskakująco bezbolesny proces). Użyłem stopera do rejestrowania pomiarów przed i po. (Dell Inspiron 1525, 3 GB pamięci RAM, Windows Vista 32-bitowy)

Rozruch / uruchamianie systemu Windows

63 sekundy -> 52 sekundy

Ładowanie mojego rozwiązania ASP.NET Visual Studio

Innymi słowy, czas od kliknięcia pliku .sln do pełnego załadowania programu Visual Studio i rozpoczęcia kodowania. Zrobiłem to raz przed pomiarem, ponieważ pierwszy raz zawsze trwa dłużej niż kolejne.

16 sekund -> 8 sekund.

Debugowanie

F5 do w pełni załadowanej strony głównej.

5 sekund -> 3,5 sekundy

James Lawruk
źródło
1
Zmniejszyłeś tylko o 21% czas rozruchu, przechodząc z 5400 obr./min na dysk SSD? Powinieneś zobaczyć znacznie większą korzyść z tego. Może nie masz wystarczającej ilości pamięci RAM w swoim laptopie?
Brian Kendig
@Bria Kendig Dzięki, mogę spróbować. Obecnie mam 3 GB, więc maksymalnie mogę przejść do 4 GB.
James Lawruk
Mam kluczowy dysk SSD, a mój Win7 uruchamia się w 15 sekund od całkowitego wyłączenia.
tuńczyk24
Jak zmieniłeś swój dysk twardy na SSD w notebooku Dell Inspiron?
Karthik Nishanth
Kupiłem oprogramowanie do klonowania i małe śrubokręty od Amazon. lawruk.com/blog/40/cloned-laptop-hard-drive-to-an-crucial-ssd
James Lawruk
5

Zobacz artykuł Joela Spolsky'ego Solid State Disks (2009-03-27).

Peter Mortensen
źródło
1
Cześć, dzięki, ale myślę, że ten artykuł dotyczył ich własnego kompilatora, a nie VS 2008.
Julian de Wit
4

Kiedy kupiłem nowy komputer, nie byłem pewien, co przyspieszyło moje doświadczenie.

Jednak mój kolega wymienił dysk twardy 7200 obr./min na dysk SSD. Od razu Visual Studio (zwłaszcza uruchamianie / debugowanie ASP.NET) było co najmniej dwa razy szybciej!

Julian de Wit
źródło
2

Też się nad tym zastanawiałem i jakiś czas temu kupiłem szybko kartę SD , którą mogę wsadzić do laptopa i zapomnieć o tym, żeby Windows Vista mógł korzystać z funkcji ReadyBoost . Wydaje się, że to robi różnicę, ale z pewnością nie wystarczy, aby uzasadnić zakup dysku SSD tylko w tym celu.

Następnie zacząłem napotykać problemy podczas aktualizowania Subversion i zdecydowałem się wyrzucić pomysł ReadyBoost i zamontować dysk SD w punkcie montowania, w którym utworzyłem wszystkie pliki mojego projektu. Karta SD nie jest zbyt duża (1 GB), ale z pewnością skróciła mój czas oczekiwania na kompilacje i sprawia, że ​​debugowanie jest dość szybsze.

Większość z nich jest subiektywna i odpowiadam na pytanie, które wymaga faktów, „czuję to” i „czuję tamto”. Ze względu na moje eksperymenty z uruchamianiem plików Visual Studio z innego dysku, z pewnością wierzę, że będzie to miało znaczenie, ile i ile jestem gotów za to zapłacić, to pytanie, na które również chętnie szukam odpowiedzi. Mój notebook może pomieścić inny dysk twardy i nie byłem w stanie zdecydować się między SDD a dyskiem do laptopa 7200 obr./min.

Peter Mortensen
źródło
1
Cześć, dzięki. Mam mniej więcej takie same wyniki przy przełączaniu z 7200 na 10 000 welociraptorów .. Jakoś to było trochę szybsze, ale nie przełomowe. Miałem nadzieję, że dyski SSD są rewolucyjne ...
Julian de Wit
1
Nie sądzę, aby Velociraptory były dyskami SSD, żeby było jasne.
Brett,