2010-11-29 5 views
9

J'utilise le profileur de Visual Studio 2008 Development Edition. Pour effectuer un «profilage ciblé», je peux définir manuellement les filtres de profileur via des «marques» chaque fois que je suis attaché à mon code de test en cours d'exécution. Mais je voudrais insérer les marques par programme à la place. Je voudrais ajouter un appel, une instruction ou une directive à mon code de test qui, lorsqu'il est exécuté, indique au profileur "ceci est une 'marque' appelée 'BeginWork'" et "ceci est une 'marque' EndWork '".Insertion par programme de marques de profilage

Y a-t-il un moyen de faire cela? Si non, Visual Studio 2010 at-il cette capacité?

+0

Je pense qu'il vaut la peine de mentionner que j'ai trouvé que le profileur VS2008 était terriblement épouvantable lors de la manipulation de code non géré. YMMV. Nous utilisons AQTime, mais je ne suis pas parfaitement content. –

Répondre

10

Vous pouvez utiliser l'API Profiler pour insérer des marques par programmation. Voir la documentation de la méthode DataCollection.CommentMarkProfile sur MSDN.

Vous avez juste besoin d'ajouter une référence à Microsoft.VisualStudio.Profiler.dll à partir de 'Program Files [x86] \ Microsoft Visual Studio 9.0 \ Team Tools \ Outils de performance' pour utiliser l'API managée.

Votre code de test pourrait ressembler à:

MarkOperationResult result; 
result = DataCollection.CommentMarkProfile(markID1, "BeginWork"); 
// Validate result... 

SomeOperation(); 

result = DataCollection.CommentMarkProfile(markID2, "EndWork"); 
// Validate result... 
+0

Une idée s'il existe un équivalent Silverlight? –