6

Я занимаюсь разработкой системы с 64-разрядной версией Windows 7, Visual Studio и Sharepoint на виртуальной рабочей станции на каком-либо сервере VMWare.

Система мучительно медленная, Visual Studio отстает при вводе кода, IntelliSense отстает, открывает и сохраняет файлы по сравнению с обычным бюджетным ноутбуком.

Насколько я вижу, виртуальная машина имеет спецификации OK и, похоже, не меняет местами и т.д., И ИТ-отдел также говорит, что они не видят ничего плохого, когда они отслеживают систему.

Пока проблема недостаточно документирована, ИТ-отдел и руководство не хотят вкладывать деньги (= модернизированные ноутбуки) в нас, поэтому мне нужно показать какой-то эталонный тест.

Прошло много лет с тех пор, как я провел какой-либо тест производительности системы, и я не знаю, какое программное обеспечение используется в настоящее время, поэтому мой вопрос в том, какой тест будет наиболее актуальным для производительности Visual Studio? Не только для быстрой компиляции, но и для отражения "отзывчивости" системы.

2 ответа2

3

Дисковые операции оказывают огромное влияние на производительность Visual Studio.

Попробуйте тесты для HDD.

1

На случай, если кто-то (кроме меня) не знает, как это сделать, я опубликую свой скрипт powershell, который выполняет синхронизированный цикл "раунд работы" с использованием Visual Studio.

  1. TFS создает временное рабочее пространство
  2. TFS получить последнюю версию каталога решений
  3. Файл извлечения TFS и отмена извлеченного файла
  4. пересобрать решение (msbuild)
  5. запустить модульные тесты из указанной библиотеки DLL (mstest)
  6. удалить файлы и рабочее пространство
  7. записать вывод работы на консоль
  8. укажите количество секунд, потраченных на первые 5 шагов

Ура, 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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .