2013-07-12 66 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)。这样做的缺点是,如果发生崩溃,不会被刷新的行会丢失。

编辑:影响将跟踪写入的频率成正比。如果你没有大量使用它,性能增益可能会被忽略。但是,它通常用在整个代码库中。测量总是更好。

相关问题