30oct. 2014

Visual Studio 2012 : Optimiser son environnement

J'ai récemment été confronté à des lenteurs - quasiment un freeze - à l'ouverture de Visual Studio. A tel point qu'il devenait nécessaire de passer par le système de fichier pour modifier les fichiers sources.

Voici deux pistes de réflexion pour optimiser votre environnement.

Choisir le bon type de workspace

Team Foundation Server propose deux types de workspace, serveur et local.

Le workspace serveur

Lors de modifications dans un workspace serveur, Visual Studio checkout automatiquement les fichiers modifiés.

Dans le cas d'un projet avec de nombreux fichiers, cela peut causer de gros ralentissements car Visual Studio synchronise en permanence le workspace avec le serveur.

L'interêt du workspace serveur se situe dans le verrouillage automatique des fichiers en cours de modiciation jusqu'au checkin.

En cas de perte de connectivité avec le serveur Team Foundation Server, un certains nombres de fonctionnalités ne sont plus disponibles. Par exemple, il n'est plus possible d'ouvrir une solution présente dans le source control explorer - et ce, même si les fichiers sont présents sur votre disque.

A noter que Microsoft insiste sur les mauvaises performances du workspace server sur la MSDN.

Le workspace local

Le workspace local détecte de la même manière les modifications mais ne checkout pas automatiquement sur le serveur.

Il marque les changements en tant que pending changes. La synchronisation sera faite une fois lors du checkin.

Le workspace local est donc beaucoup plus performant que le workspace serveur car il ne checkout pas automatiquement les fichiers modifiés.

De plus en cas de perte de connectivité avec le serveur Team Foundation Server, le travail peut continuer.

Mapper une branche par dossier

Je faisais l'erreur de mapper un projet entier sur un dossier de base. Dans le cas d'un petit projet, cela peut fonctionner.

Mais avec plusieurs dizaine de milliers de fichiers, Visual Studio ne suit plus. J'imagine que le processus de tracking des pending changes demande de parcourir toutes les arborescences.

Je n'ai pas analysé en profondeur le pourquoi. J'ai constaté ce problème sur un workspace local.

Sources

aucun commentaire

Fil des commentaires de ce billet

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.