2011-04-25 69 views
1

我有一个应用程序几乎在它使用的每个方法中都使用Trace.WriteLine。该计划有几个不同的问题。System.Diagnostics.Trace开销

我想知道的是,是否有经常使用System.Diagnostics.Trace.WriteLine的开销?我正在寻找解决问题的方法,因为我发现它们,并且我个人觉得在程序中几乎每一种方法都使用Debug/Trace WriteLine会带来性能成本。

编写此应用程序的程序员很匆忙,也包括一些过去为我们造成麻烦的资产报表。

+1

你是否介绍了该应用程序? – Oded 2011-04-25 15:30:46

+0

不是一个直接的答案:你有没有考虑过使用类似Log4Net的东西?这使您能够在需要时动态记录日志。 – 2011-04-25 15:31:37

+0

Mitch - 在这些方法中甚至没有记录发生了什么的理由。有问题的程序员落后了,根本不知道有更好的方法来跟踪程序与第三方应用程序的交互。因此,解决方案只是简单地找出代码本身是否会导致某些性能下降。我真的从来没有使用过System.Diagnostics,这让我只想问一下它可能导致的性能问题。 – 2011-04-25 15:43:12

回答

4

这是可能Trace可能会导致您的应用程序的性能问题。特别是如果它在程序中的每一种方法中使用。

幸运的是Trace.WriteLine有一个Conditional属性附加到它:跟踪。如果您在未定义Trace的情况下编译应用程序,它将编译为就像这些调用根本不存在一样。这将允许您快速进行眼球测试,看看它是否影响性能。

知道的唯一方法是将应用程序挂接到分析器。这会明确告诉你,如果Trace.WriteLine是你的应用程序的问题。

+0

这回答了我的问题。负责设计这个程序的程序员根本不知道另一种跟踪程序流程的方法。 – 2011-04-25 15:45:11