Tests de performance pertinents pour un poste de travail de développement Visual Studio .NET


6

Je développe un système avec Windows 7 64 bits, Visual Studio et Sharepoint sur un poste de travail virtuel sur un type de serveur VMWare.

Le système est très lent, avec Visual Studio retard lors de la saisie du code, IntelliSense calorifugeage, l' ouverture et l' enregistrement des fichiers prend âges par rapport à un ordinateur portable budget normal.

Autant que je sache, la machine virtuelle a des spécifications acceptables et ne semble pas être en train de changer, etc., et le service informatique a également déclaré qu'il ne voyait rien de mal en surveillant le système.

Tant que le problème n'est pas bien documenté, le service informatique et la direction ne veulent pas nous envoyer de l'argent (= ordinateurs portables améliorés), je dois donc montrer une sorte de repère.

Cela fait de nombreuses années que j'ai effectué une analyse comparative du système et je ne connais pas le logiciel de référence actuel. Je souhaite donc savoir quelle référence sera la plus pertinente pour les performances de Visual Studio. Non seulement pour la compilation rapide, mais aussi pour refléter la "réactivité" du système.


Merci pour vos commentaires. Je n'ai pas beaucoup d'informations sur l'hôte de la VM, et les spécifications et la configuration de l'hôte ne m'importent pas vraiment, car je ne suis pas en mesure de suggérer des modifications à cela. Ma tâche est de fournir à la direction et à l’informatique de la documentation ou des informations sur ce que cela signifie exactement lorsque les développeurs disent que les "systèmes sont lents comme de la mélasse". Un point de référence qui serait exécuté sur l’invité de la VM et sur un PC physique donnerait une indication de la taille de l’écart de performance. Je suppose que je vais juste chronométrer un cycle de travail Visual Studio scripté, mais cela ne dit pas grand-chose de la "réactivité".
Kenned

Réponses:


3

Les opérations de disque ont un impact énorme sur les performances de Visual Studio.

Essayez des repères pour le disque dur.


Les E / S de disque ont toujours été le tueur pour nos développeurs utilisant des VM. Avez-vous plus d'informations sur ce qui héberge exactement la VM? Version VMware, configuration matérielle, etc.
Dave M

1

Au cas où quelqu'un (à part moi) ne sache pas comment faire cela, je posterai mon script powershell qui effectue une série chronométrée de travaux à l'aide de Visual Studio.

  1. TFS crée un espace de travail temporaire
  2. TFS obtenir le dernier répertoire de solution
  3. TFS extraire le fichier et annuler le fichier extrait
  4. reconstruire la solution (msbuild)
  5. lancer des tests unitaires à partir des dll spécifiées (mstest)
  6. supprimer des fichiers et un espace de travail
  7. écrire la sortie du travail sur la console
  8. écrire le nombre de secondes passées à faire les 5 premières étapes

À la vôtre, user30715

    ## Changez pour s'adapter à votre environnement ##
    $ BASEDIR = "C: \ temp \ test \" # Où stocker les fichiers temporaires
    $ TFS_SERVER = "http: //mytfs.srv: 8080" # serveur TFS 
    $ TFS_PROJECT_DIR = "$ / Chemin / Vers / Mon / Solution / Répertoire" # Chemin du répertoire de solution sur TFS
    $ SLNFILE = "My.App.sln" # Chemin d'accès au fichier de solution (par rapport à TFS_PROJECT_DIR)
    $ UNIT_TEST_DLL = "Relatif / Chemin / Vers / Mon.App.Test.dll" # Chemin vers la DLL de test unitaire (relative)
    ######################################

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

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

    fonction DoWork () 
    {
        write-host "Obtenir une source de TFS"
        mkdir $ WORKDIR
        pushd $ WORKDIR
        Espace de travail tf / new / noprompt / server: $ TFS_SERVER $ TESTNAME 
        tf dossier de travail / carte / serveur: $ TFS_SERVER / espace de travail: $ TESTNAME $ TFS_PROJECT_DIR $ WORKDIR
        tf obtenir / récursif / force / noprompt $ TFS_PROJECT_DIR
        write-host "Extraction du fichier $ SLNFILE" 
        tf checkout $ SLNFILE
        write-host "Annulation de la validation"
        tf undo / noprompt $ SLNFILE 
        write-host "Démarrage du processus de construction"
        msbuild $ SLNFILE / target: reconstruit 
        write-host "Exécution des tests"
        mstest / testcontainer: "$ UNIT_TEST_DLL" 
        popd
    }

    fonction CleanUp ()
    {
        write-host "Nettoyage du bazar"
        pushd $ BASEDIR
        tf workfold / unmap / workspace: $ TESTNAME $ WORKDIR
        tf espace de travail / delete / noprompt $ TESTNAME
        rmdir -recurse -force $ WORKDIR
        popd
    }

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

    write-host "$ VSTIME a dépensé quelques secondes pour faire le travail"
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.