2010-06-24 4 views
2

j'essaie d'obtenir une compréhension de la performance d'une page Web et d'utiliser Trace.WriteBest Practice quand une page Web L'instrumentation ayant des tâches parallèles

Le problème est que j'utilise Parallel.Invoke et commence plus les discussions où je voudrais faire rapport à l'aide Trace.Write

  Parallel.Invoke(() => Chart1AndLegend(param), 
       () => Chart2(param), 
       () => Chart3(param), 
       () => Chart4(param)); 

Je me suis rendu compte que Trace.Write est pas une bonne façon de tracer car il est vous donne le temps écoulé depuis la dernière entrée qui n'a pas de sens si plusieurs threads écrivent ..

Question: Toute bonne suggestion comment instrument une page lors de l'utilisation de la bibliothèque parallèle ou dois-je écrire mon propre tracé!?!?

+0

Je sais que c'est assez tard. Cependant - se demandait si vous avez regardé le cadre de travail pour cela. Je me sens avec les tâches que vous pouvez spécifier délégué qui peut être utilisé pour tracer ce dont vous avez besoin. – sajoshi

Répondre

1

Peut-être que c'est l'évidence ici, mais que se passe-t-il si vous avez créé un StopWatch (ou un nombre de) et simplement écrire le temps écoulé dans le message Trace.Write? Je suppose que l'autre chose serait d'identifier quel thread/méthode vous êtes dans la catégorie de trace (utilisez Thread.CurrentThread.ManagedThreadId).

Vous pouvez également utiliser autre chose comme Enterprise Library, log4net ou le traçage dans System.Diagnostics (voir http://www.15seconds.com/issue/020910.htm pour une description complète du suivi dans System.Diagnostics).

+0

Oui, j'ai fait mon tracé avec un chronomètre. – salgo60

Questions connexes