Benchmarks relevantes para uma estação de trabalho de desenvolvimento do Visual Studio .NET

6

Estou desenvolvendo um sistema com o Windows 7 de 64 bits, Visual Studio e Sharepoint em uma estação de trabalho virtual em algum tipo de servidor VMWare.

O sistema é dolorosamente lento, com o Visual Studio ficando para trás ao inserir código, IntelliSense atrasando, abrindo e salvando arquivos idades em comparação com um laptop de orçamento normal.

Tanto quanto eu posso ver a máquina virtual tem especificações OK e não parece estar trocando etc, e o departamento de TI também diz que eles não podem ver nada de errado quando estão monitorando o sistema.

Enquanto o problema não estiver bem documentado, o departamento de TI e o gerenciamento não querem jogar dinheiro (= laptops atualizados) para nós, então eu preciso mostrar algum tipo de referência.

Já faz muitos anos desde que fiz benchmarking de sistema, e não conheço o atual software de benchmark, então minha pergunta é qual benchmark será mais relevante para o desempenho do Visual Studio? Não apenas para compilar rapidamente, mas também para refletir a "capacidade de resposta" do sistema.

    
por Kenned 10.03.2010 / 10:54

2 respostas

1

Caso alguém (além de mim) não saiba como fazer isso, eu postarei meu script PowerShell que faz uma execução cronometrada de uma "rodada de trabalho" usando o Visual Studio.

  1. O TFS cria um espaço de trabalho temporário
  2. O TFS obtém o diretório de soluções mais recente
  3. TFS verifica o arquivo e desfaz o arquivo com check-out
  4. reconstruir solução (msbuild)
  5. executa testes de unidade a partir da dll especificada (mstest)
  6. excluir arquivos e espaço de trabalho
  7. grava a saída do trabalho para consolar
  8. escreva o número de segundos gastos executando as 5 primeiras etapas

Felicidades, user30715

    ## Change to fit your environment ##
    $BASEDIR="C:\temp\test\"              # Where to store the temporary files
    $TFS_SERVER="http://mytfs.srv:8080"   # TFS server 
    $TFS_PROJECT_DIR="$/Path/To/My/Solution/Directory"   # Path to solution dir on TFS
    $SLNFILE="My.App.sln"      # Path to solution file (relative to TFS_PROJECT_DIR)
    $UNIT_TEST_DLL="Relative/Path/To/My.App.Test.dll"    # Path to unit test dll (relative)
    ####################################

    $TSTAMP=get-date -Format yyyy-MM-dd_HH-mm-ss
    $TESTNAME="tfstest." + $TSTAMP
    $WORKDIR=$BASEDIR + $TESTNAME
    $LOG=$BASEDIR + $TESTNAME + ".log"

    function Log()
    {
        $input | write-host
    }

    function DoWork() 
    {
        write-host "Getting source from TFS"
        mkdir $WORKDIR
        pushd $WORKDIR
        tf workspace /new /noprompt /server:$TFS_SERVER $TESTNAME 
        tf workfold /map /server:$TFS_SERVER /workspace:$TESTNAME $TFS_PROJECT_DIR $WORKDIR
        tf get /recursive /force /noprompt $TFS_PROJECT_DIR
        write-host "Checking out file $SLNFILE" 
        tf checkout $SLNFILE
        write-host "Undoing checkout"
        tf undo /noprompt $SLNFILE 
        write-host "Starting build process"
        msbuild $SLNFILE /target:rebuild 
        write-host "Running tests"
        mstest /testcontainer:"$UNIT_TEST_DLL" 
        popd
    }

    function CleanUp()
    {
        write-host "Cleaning up mess"
        pushd $BASEDIR
        tf workfold /unmap /workspace:$TESTNAME $WORKDIR
        tf workspace /delete /noprompt $TESTNAME
        rmdir -recurse -force $WORKDIR
        popd
    }

    $VSTIME=(measure-command { DoWork 2>&1 | Log }).TotalSeconds
    CleanUp 

    write-host "Spent $VSTIME seconds doing work"
    
por 15.03.2010 / 16:30
3

As operações do disco são de grande impacto no desempenho do Visual Studio.

Teste os padrões de desempenho do disco rígido.

    
por 10.03.2010 / 12:13