2013-07-12 65 views
2

在我所有的應用程序,我一直設置爲什麼我會關閉System.Diagnostics跟蹤自動刷新?

<trace autoflush="true" /> 

是否有任何理由爲什麼有些人想不這樣做呢?

我想這會對性能產生影響,但它有多大?

+3

_「我想這對性能有影響,但它有多大?」 - 不要猜測,測量。 – CodeCaster

+0

它似乎與默認是8k塊的自動刷新http://stackoverflow.com/questions/24173366/trace-flush-will-data-get-written-to-textwritertracelistener-immediately - 如果你手動沖洗,那麼你有控制,緩衝區越大,允許IO寫入的上下文切換越少,但每次寫入的影響越大。 –

回答

2

docs

Trace.AutoFlush物業

獲取或設置刷新是否應該被稱爲在每次寫入後聽衆 。

出於性能方面的原因,您可能更喜歡不常使用沖洗(少IO)。這樣做的缺點是,如果發生崩潰,不會被刷新的行會丟失。

編輯:影響將跟蹤寫入的頻率成正比。如果你沒有大量使用它,性能增益可能會被忽略。但是,它通常用在整個代碼庫中。測量總是更好。

相關問題