Unidades SSD e Visual Studio IDE. Grandes melhorias? Histórias de uso reais, sem teoria

91

Eu quero ir para unidades SSD do Windows 7 + Intel para acelerar meu ciclo de desenvolvimento do Visual Studio 2008.

As áreas que desejo acelerar são:

  • Tempos de compilação / construção
  • Abrindo arquivos para winforms / webforms
  • "Lentidão" geral do Visual Studio para Windows e web

Não estou interessado no tempo de inicialização do Visual Studio. Além disso, o custo por GB não é um problema. Eu quero velocidade.

Alguém já tentou isso ( unidade SSD + Visual Studio ) e o que você pode dizer sobre as acelerações / reduções?

Eu conheço a teoria sobre SSDs, mas geralmente a prova do pudim está em comer. Portanto, estou interessado nas pessoas que realmente experimentaram e testaram uma configuração do Visual Studio com SSD ...

Julian de Wit
fonte
Provavelmente, vale a pena perguntar isso em serverfault.com. Consulte blog.stackoverflow.com/2009/04/server-fault-private-beta-begins para obter detalhes.
Matthew Murdoch
2
Achei que fosse mais sobre programação, mas certamente considerei isso. No entanto, eu não queria benchmarks, mas sim a experiência VS2008 real
Julian de Wit
Justo. Eu estava sugerindo que você perguntasse lá também (embora isso pudesse desencadear uma guerra de insultos ...!).
Matthew Murdoch
Uau, parece interessante encontrar uma questão mais antiga do que Server Fault saindo do beta. Eu estava procurando alguns benefícios para 2016 (o VS tem 80 shows malucos sozinho e meu futuro SSD de 128 GB pode não caber no Windows e no VS ...)
Paul Stelian

Respostas:

79

Eu tenho dados concretos para Visual C # 2008. A versão resumida é que é melhor gastar seu dinheiro em uma CPU mais rápida do que em E / S mais rápida . Segue-se uma resposta mais longa ...

Nossa solução C # (.NET 3.5) contém 81 projetos com mais de 2 milhões de linhas de código (incluindo comentários e linhas em branco). Alguns anos atrás, atualizamos de PCs Pentium 4 de 3 GHz com HDDs padrão para PCs Core 2 Duo 2.6 GHz com HDDs WD Raptor de 10.000 RPM (74 GB). A aceleração foi imensa. Cerca de 10 minutos para 3,5 minutos. Tudo isso em um ambiente Windows XP Pro de 32 bits com 4 GB de RAM.

Também temos um Gigabyte i-RAM (pesquise no Google para obter informações), que é basicamente um disco rígido RAM com bateria de backup. Ao contrário de um SSD que é rápido para ler, mas mais lento para escrever, o i-RAM é rápido para ambos, mas se você perder energia, a bateria dura apenas cerca de 12 horas, então você tem que ser disciplinado com seus check-ins. Isso reduziu mais um minuto do tempo de compilação na plataforma Core 2 Dou (para 2,5 minutos) em comparação com o HDD Raptor de 10.000 RPM.

Desde então, descobri que aqueles antigos discos Raptor de 74 GB e 10.000 RPM são ligeiramente mais lentos do que os seus discos modernos de 7.200 RPM, e provamos que compila benchmarking de forma consistente. Ainda não experimentamos os novos Velociraptors, mas eles certamente seriam mais rápidos, mas provavelmente não o suficiente para valer a pena apenas para tempos de compilação.

Na semana passada, recebemos uma nova plataforma Intel Core i7-870 com um SSD G.Skill Falcon de 128 GB (com o controlador Indilix Barefoot) e um HDD padrão de 500 GB como segundo drive. Eu também coloquei o i-RAM neste PC e testei todas as configurações.

Comparado com o Core 2 Duo, que compilou em 3,5 minutos para o HDD e 2,5 minutos para o i-RAM, o i7-870 compila em 1 minuto e 40 segundos para o SSD, HDD e i-RAM em mais ou menos 3 segundos.

Portanto, nas duas vezes em que atualizamos as estações de trabalho do desenvolvedor, a grande maioria das melhorias de desempenho nos tempos de compilação C # veio de uma CPU mais rápida, em vez de um disco mais rápido. Se você quiser acelerar os tempos de compilação, coloque seu dinheiro na CPU em vez de no disco.

Dito isso, o SSD é muito mais rápido para carregar o Visual Studio e abrir uma solução (embora eu não tenha tempo para isso). Se você puder pagar por um SSD, nunca mais voltará, pois todos os programas em seu PC carregam muito mais rápido, é incrível. Mas não vai acelerar significativamente suas compilações. E isso com o Visual Studio C # sendo de thread único. Se a Microsoft alguma vez se reunisse e fizesse seu compilador no IDE multi-threaded, poderíamos realmente usar esses quatro núcleos ...


Atualização de maio de 2012: Agora atualizamos nossos PCs novamente e com base no que aprendemos antes de nos concentrarmos no desempenho da CPU. Os novos PCs têm CPUs Intel Core i7-2600k com overclock de 4,6 GHz, com SSD Intel 510 Series 120 GB SATA III, 16 GB de RAM e um grande cooler de CPU! Surpreendentemente, isso reduziu quase pela metade o tempo de compilação e certamente atribuí isso ao grande aumento na potência da CPU, em vez do SSD mais rápido.

A compilação C # nos resultados de desempenho do Visual Studio 2010 foram:

  • 159 segundos: Intel Core i7-870 estoque (2,9 - 3,3 GHz), 4 GB de RAM com SATA II SSD
  • 109 segundos: Intel Core i7-2600k estoque (3,4 - 3,8 GHz) 16 GB de RAM com SATA III SSD
  • 84 segundos: Intel Core i7-2600k com overclock (4,63 GHz) 16 GB de RAM com SSD SATA III
Ben Robbins
fonte
1
Obrigado .. Pena que já encomendei um computador monstro SDD :) Vou postar meus resultados aqui também, mas temo que sejam os mesmos resultados.
Julian de Wit
A propósito, você fez ASP.NET ou Winforms?
Julian de Wit
9
Ok - muito a corrigir: em primeiro lugar - você não mencionou qual SSD estava usando. As unidades SSD conectam-se diretamente a uma interface SATA2, que iRAM é SATA1 (130 MB / s). Além disso, o iRAM tem um controlador limitado, o que acaba com o ponto. Se você tinha 2 em RAID 0, deveria obter velocidades de até 200 MB / s. Eu concordo que um SSD não vai melhorar seus tempos de compilação, mas eu vi o estúdio visual do SSD abrir em cerca de um segundo. Por último, não acho que a iRAM se qualifique como uma unidade SSD típica. Seus resultados são enganosos e os fatos estão errados.
JL.
13
Você precisa ler e possivelmente pensar antes de digitar. Em primeiro lugar, mencionei o SSD que estava usando, na verdade ele está em NEGRITO . Eu sei que o iRAM tem uma interface SATA1 e, portanto, é mais lento para leituras do que quase todos os SSDs mais recentes - eu o incluí porque tinha um para testar e porque é realmente tão rápido para gravações quanto para leituras, o que a maioria dos SSDs não é. Não testei com 2 em RAID porque só tinha 1! Também mencionei no último parágrafo que o SSD é muito mais rápido para carregar o VS. Então, os fatos estão todos corretos e os resultados com os quais você concorda, mas diz que eles são enganosos? Interessante ...
Ben Robbins
1
@BenRobbins Você comparou seu projeto C # fora do VisualStudio, com o sinalizador / MP?
John Zabroski
27

Acabei de comprar um e o único arrependimento que tenho é de não ter comprado um SSD antes.

Os tempos de compilação já eram bons antes, mas agora todo o IDE é muito mais responsivo. E não é apenas o Visual Studio, mas também outros aplicativos. É muito mais fácil permanecer no fluxo quando todo o sistema funciona tão rapidamente.

Adrian Grigore
fonte
4
Depois de alguns meses .. Tenho a mesma sensação .. Toda a experiência do computador é melhor.
Julian de Wit
11

Como teste, acabamos de solicitar um SSD baseado em Sandforce de 90 GB para ver se ele poderia ajudar em nossos tempos de construção. Temos um grande projeto C ++ que leva 21 minutos para fazer uma reconstrução completa (uma caixa Xeon de 3,4 GHz mais antiga).

Executando três testes em cada um, a diferença de tempo nas compilações era insignificante; na ordem de 30 segundos mais rápido.

Nosso novo (!) Xeon 5150 box (com disco rígido) reconstrói o mesmo projeto em aproximadamente 11 minutos, o que mostra que a compilação realmente depende da CPU.

(Isso me surpreendeu, pois imaginei que o incrível desempenho de leitura / gravação de 4k e 512k de um SSD seria muito benéfico nas compilações.)

user528764
fonte
11

Após longos testes de desempenho, obtive a melhor configuração aqui, mas para um compilador C ++. Você vai precisar de:

  • SSD para Windows e arquivos de programas (normalmente a unidade C:)
  • 1 TB WD Caviar Black em duas partições:
    • Unidade D: Uma minúscula (máx. 35 GB) nos cilindros iniciais com apenas uma pasta TEMP; Você deve mapear suas variáveis ​​de ambiente TMP e TEMP para D: \ TEMP (este é realmente importante !!!)
    • Unidade E: com o restante do armazenamento da unidade; use isso para armazenamento de dados em geral, exceto para o material de desenvolvimento de software
  • 1 TB WD Caviar Black em qualquer layout de partição em que você deseja armazenar seus projetos / solução do Visual Studio 2008. Com base no uso do Subversion, acabei com quatro partições:
    • 820 GB para tronco e projetos de uso geral
    • 60 GB para um "branch de recursos"
    • 60 GB para um "ramo estável" usado durante a estabilização do produto
    • 60 GB para um "ramo de qualidade do produto" usado para pequenas correções em software aprovado
  • Processador de 6 ou 8 núcleos, usando a opção de compilador / MP (não se confunda com o recurso nativo de "construção de projeto paralelo" do Visual Studio 2008 - não sei por que o processador AMD Phenon II está funcionando tão bem com esta combinação)
  • Windows 7 de 64 bits (não sei exatamente por que funciona mais rápido em um sistema operacional de 64 bits, mesmo usando um compilador de 32 bits)
  • Placa-mãe compatível com SATA 3

Esta configuração supera qualquer outra combinação que testei.

Uma compilação típica de um grande projeto modular terá os seguintes resultados:

  • Construção paralela sem / MP e HDDs regulares: cerca de 12:00 minutos
  • Esta configuração proposta: 4:30 minutos
  • Esta configuração, mas usando unidades WD Caviar Green alternadas: +1: 00 por unidade (5:30 ou 6:30 para ambos)
  • Movendo a partição TEMP para um RAMDRIVE: 5:30

Minhas conclusões são as seguintes:

  • Não deixe a pasta TEMP ser executada no SSD, pois eles são "gravadores" ruins e não têm um cache de 64 MB comparável dentro do WD Caviar Black
  • Usar uma unidade dedicada funcionando como TEMP permite que ambas as unidades WD funcionem em paralelo: o TEMP para arquivos temporários cl.exe e a unidade do projeto para armazenar * .cpp / h, * .obj, * .lib, * .exe, etc.
  • Os algoritmos de cache WD Caviar Black são impressionantes, combinados com SATA de 6 GB / s, superam uma configuração RAMDRIVE que testei para a unidade TEMP
  • O particionamento reduz o impacto sobre a fragmentação que é inevitável em um ambiente de compilador; o mesmo também é válido para a unidade TEMP

Espero poder te ajudar.

Mathias A. Gruber
fonte
1
Esqueci de dizer que o modo SATA deve estar no modo AHCI.
Mathias A. Gruber
1
Não tenho certeza sobre a parte da pasta TEMP, no entanto. Por que você diz que os SSDs são "escritores ruins"? Em relação ao tamanho do cache integrado, ele geralmente é maior que 64 MB (o Vertex 4 vem com cache DRAM de 512 MB, até 1 GB para unidades maiores). E suas experiências ruins com RAMDRIVE são realmente estranhas. Quão grande era? Onde seu arquivo de troca estava localizado? Tem certeza que não foi trocado para o disco? A RAM DDR2 média tem 10x a largura de banda do SATA 6 GB, sem mencionar que o próprio Windows faz o cache de RAM para gravações em disco. E nem mesmo do RAID você está falando.
Groo
5

Acabei de atualizar um laptop para SSD clonando o disco rígido original de 5400 RPM (surpreendentemente um processo indolor). Usei um cronômetro para capturar as métricas antes e depois. (Dell Inspiron 1525, 3 GB de RAM, Windows Vista de 32 bits)

Inicialização / inicialização do Windows

63 segundos -> 52 segundos

Carregando minha solução ASP.NET Visual Studio

Em outras palavras, o tempo desde o clique no arquivo .sln até quando o Visual Studio está totalmente carregado e você pode começar a codificar. Fiz isso uma vez antes de fazer as medições porque a primeira vez sempre leva mais tempo do que as vezes subsequentes.

16 segundos -> 8 segundos.

Depurando

F5 para a página inicial totalmente carregada.

5 segundos -> 3,5 segundos

James Lawruk
fonte
1
Você economizou 21% do tempo de inicialização passando de 5400 rpm para SSD? Você deve ver um benefício muito maior disso. Talvez você não tenha RAM suficiente no seu laptop?
Brian Kendig
@Bria Kendig Obrigado, posso tentar isso. Atualmente, tenho 3 GB, então o máximo que posso fazer são 4 GB.
James Lawruk de
Tenho um SSD crucial e meu Win7 inicializa em 15 segundos após o desligamento completo.
tunafish 24 de
Como você mudou seu HDD para SSD em um notebook Dell Inspiron?
Karthik Nishanth
Comprei um software de clonagem e pequenas chaves de fenda da Amazon. lawruk.com/blog/40/cloned-laptop-hard-drive-to-an-crucial-ssd
James Lawruk
5

Veja o artigo de Joel Spolsky sobre Solid State Disks (2009-03-27).

Peter Mortensen
fonte
1
Olá, obrigado, Mas acho que este artigo era sobre o próprio compilador deles e não sobre o VS 2008.
Julian de Wit
4

Quando comprei um novo computador, não tinha certeza do que tornava minha experiência mais rápida.

No entanto, um colega meu trocou um disco rígido de 7200 RPM por um SSD. Imediatamente o Visual Studio (especialmente iniciando / depurando ASP.NET) foi pelo menos duas vezes mais rápido!

Julian de Wit
fonte
2

Também estive pensando nisso e, há algum tempo, comprei um cartão SD rápido , que posso colocar no laptop e esquecê-lo, para que o Windows Vista possa usar o recurso ReadyBoost . Parece que faz diferença, mas certamente não é o suficiente para justificar a compra de uma unidade SSD apenas para isso.

Então comecei a ter problemas ao fazer atualizações do Subversion e decidi descartar a ideia do ReadyBoost e montar a unidade SD em um ponto de montagem onde criei todos os meus arquivos de projeto. O cartão SD não é muito grande (1 GB), mas certamente reduziu meu tempo de espera para compilações e torna a depuração um pouco mais rápida.

Muito disso é subjetivo e estou respondendo a uma pergunta que quer fatos, com 'Eu sinto isso' e 'Eu sinto aquilo'. Por causa da minha experiência com a execução de arquivos do Visual Studio em uma unidade diferente, certamente acredito que fará diferença, quanto e quanto estou disposto a pagar por isso é uma questão que também procuro ansiosamente uma resposta. Meu notebook pode levar outra unidade de disco rígido e não consegui decidir entre um SDD e uma unidade de laptop de 7200 RPM.

Peter Mortensen
fonte
1
Olá, obrigado. Tive quase os mesmos resultados com a mudança de 7200 para 10.000 velociraptors. De alguma forma, pareceu um pouco mais rápido, mas não inovador. Eu esperava que os SSDs fossem revolucionários ..
Julian de Wit
1
Não acho que os Velociraptors sejam drives SSD, só para ficar claro.
Brett