2
在我所有的應用程序,我一直設置爲什麼我會關閉System.Diagnostics跟蹤自動刷新?
<trace autoflush="true" />
是否有任何理由爲什麼有些人想不這樣做呢?
我想這會對性能產生影響,但它有多大?
在我所有的應用程序,我一直設置爲什麼我會關閉System.Diagnostics跟蹤自動刷新?
<trace autoflush="true" />
是否有任何理由爲什麼有些人想不這樣做呢?
我想這會對性能產生影響,但它有多大?
從docs:
Trace.AutoFlush物業
獲取或設置刷新是否應該被稱爲在每次寫入後聽衆 。
出於性能方面的原因,您可能更喜歡不常使用沖洗(少IO)。這樣做的缺點是,如果發生崩潰,不會被刷新的行會丟失。
編輯:影響將跟蹤寫入的頻率成正比。如果你沒有大量使用它,性能增益可能會被忽略。但是,它通常用在整個代碼庫中。測量總是更好。
_「我想這對性能有影響,但它有多大?」 - 不要猜測,測量。 – CodeCaster
它似乎與默認是8k塊的自動刷新http://stackoverflow.com/questions/24173366/trace-flush-will-data-get-written-to-textwritertracelistener-immediately - 如果你手動沖洗,那麼你有控制,緩衝區越大,允許IO寫入的上下文切換越少,但每次寫入的影響越大。 –