Chcesz, aby Visual Studio 2010 przestał używać dysku, gdy w systemie Windows 7 64 bit jest dużo pamięci RAM

11

Będę aktualizował swój system do używania 16 GB pamięci DDR3 RAM w 64-bitowym systemie Windows 7 i Visual Studio 2010 Ultimate. Procesor będzie miał 6 rdzeni 3,2 Ghz. Robię dużo kompilacji / dzień, a moim celem dla VS jest wyświetlenie strony internetowej w ciągu kilku sekund po wprowadzeniu zmian w kodzie.

Zauważyłem, że Visual Studio wykonuje wiele operacji we / wy (z diody HD) podczas pracy z dyskiem. Chciałbym umieścić w pamięci wszystko, czego potrzebuje VS, w tym foldery tymczasowe, pliki systemowe, mój kod itp. Chcę tylko, żeby VS płonął szybko . Mój podstawowy dysk to szybki dysk SSD, a nawet chcę, aby VS go nie używał. Pamięć RAM jest super szybka w porównaniu z czymkolwiek innym.

Wiem, że VS 2010 jest nadal 32-bitowy, więc będzie zużywał maksymalnie 4 GB, jednak wszystkie inne otwarte aplikacje (przeglądarka, Outlook, Eksplorator plików ... itp.) Mogą korzystać z wszystkiego, co pozostało z 12 GB i pozwolić VS swobodnie wędrować w dedykowanej pamięci 4 GB.

Moje pytanie : Jakie ustawienia i poprawki mogę wykonać w systemach Windows 7 i VS 2010, aby VS 2010 poświęcił i zużył jak najwięcej pamięci i ją zablokował oraz aby w jak najmniejszym stopniu korzystał z dysku twardego? Czy system Windows 7 64 i VS jest już do tego zoptymalizowany i niewiele więcej można zrobić. Czy pomocny byłby dysk RAM? Pomyśl o tym, jak gdybym próbował wyeliminować dysk.

Zdaję sobie sprawę z większego prawdopodobieństwa utraty danych przy utracie zasilania, ale teraz nie jest to problemem. Załóżmy, że nie występują żadne zewnętrzne zależności (baza danych, prędkość sieci ...), które mogłyby spowolnić VS. Defragmentacja dysku niewiele pomaga.

Tony_Henrich
źródło
Ponieważ dotyczy to bardziej sposobu konfigurowania dysków RAM i wykorzystania pamięci wykonywalnej niż programowania, głosowania w celu przejścia do administratora.
jball
1
@jball Nie zgadzam się, jest to związane z programowaniem na tyle, aby warrent trzymać się, IMHO, ponieważ wielu twórców VS może skorzystać z takiej konfiguracji.
Zadałem pytanie tutaj, ponieważ potrzebuję ludzi, którzy wiedzą, jak działa Visual Studio. Jeśli jest to tylko błąd serwera, prawdopodobnie otrzymam ogólne wskazówki dotyczące optymalizacji systemu Windows (wciąż dobre wskazówki). Nie mam nic przeciwko umieszczeniu go w obu witrynach.
Tony_Henrich
Mam powiązane pytanie dotyczące błędu serwera. serverfault.com/questions/142203/…
Tony_Henrich

Odpowiedzi:

6

Masz już to, o co prosisz. Przy tak dużej pamięci RAM będziesz mieć naprawdę dużą pamięć podręczną systemu plików. Widoczny z Taskmgr.exe, zakładka Wydajność, buforowany. Każdy zapis dysku, który wykonuje Visual Studio, nastąpi natychmiastowo, gdy dane zostaną zapisane w pamięci RAM. Menedżer pamięci podręcznej następnie leniwie zapisuje go na dysku, co oczywiście powoduje miganie kontrolki dostępu do dysku.

Podobnie odczyty dysku przyspieszą. Nadal musi zejść z dysku, ale odczyta całą ścieżkę zamiast tylko sektora plików, o który prosi Visual Studio. Jest bardzo prawdopodobne, że następny odczyt wyjdzie z pamięci RAM zamiast konieczności pobierania z dysku.

Działa to tak dobrze (i jest bezpieczne), że dyski RAM nie są już używane.

Hans Passant
źródło
Widziałem też, jak VS zapisuje dysk i mam 6 GB, która nie jest pełna. Myślę, że VS może używać flag, które zmuszają dane do przechowywania na dysku. Musi myśleć, że pliki wyjściowe są cennymi rzeczami!
Zan Lynx
Hmm, jaki projekt generuje 6 gigabajtów kodu wykonywalnego?
@Hans: Przeformułowanie. Mój system ma 6 GB pamięci RAM, która nie jest całkowicie zużyta i powinna być dostępna jako pamięć podręczna zapisu dysku dla 100 MB plików wyjściowych generowanych przez kompilację projektu.
Zan Lynx
1
@zan - użyj ProcMon SysInternals, aby dowiedzieć się, co robi dysk.
Hans Passant
2

Wygląda na to, że musisz najpierw utworzyć dysk RAM. Nie jestem pewien narzędzi do tego celu w systemie Windows 7; może ktoś inny będzie miał pomysł. Ale to powinno obsłużyć wszystkie niezbędne poprawki po stronie systemu Windows, aż do dysku. Jedyne, co chciałbym dodać, to ustawienie katalogu tymczasowego na dysku RAM. Jest to przechowywane w zmiennych środowiskowych jako TMP i TEMP. Zazwyczaj występuje także w zmiennych systemowych i zmiennych użytkownika; koniecznie zmień oba.

W programie Visual Studio musisz upewnić się, że wszystko, co możesz ustawić jako opcje ścieżki w Visual Studio, wskazuje na dysk RAM. Obejmuje to katalog wejściowy i wyjściowy projektu oraz wszelkie katalogi tymczasowe, których może potrzebować, choć teoretycznie powinny one zostać wyłączone ze zmiennych środowiskowych TMP / TEMP.

jdmichal
źródło