最佳实践在执行并行任务时检测网页

时间:2010-06-24 08:18:48

标签: c# asp.net trace parallel-processing instrumentation

我尝试了解网页的性能并使用Trace.Write

问题是我使用Parallel.Invoke并启动更多线程,我想使用Trace.Write报告回来

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

我已经意识到Trace.Write不是一种很好的跟踪方式,因为它会给你自上一次输入以来的时间,如果有更多的线程在写,那就毫无意义了。

问题:如何在使用并行库时检测页面是否有任何好的建议,或者我是否需要编写自己的跟踪!?!?

1 个答案:

答案 0 :(得分:1)

可能会在这里说明显而易见的,但如果您创建了一个StopWatch(或多个)并简单地在Trace.Write消息中写入已用时间怎么办?我想另一件事是确定你在跟踪类别中的线程/方法(使用Thread.CurrentThread.ManagedThreadId)。

或者,您需要使用其他类似Enterprise Library,log4net或System.Diagnostics中的跟踪(有关System.Diagnostics中跟踪的完整讨论,请参阅http://www.15seconds.com/issue/020910.htm)。