2011-04-25 67 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