gpt4 book ai didi

.NET 跟踪 : What is the "Default" listener?

转载 作者:行者123 更新时间:2023-12-03 11:02:29 25 4
gpt4 key购买 nike

.NET 中的每个跟踪示例都删除了“Default”监听器:

<configuration>
<system.diagnostics>
<sources>
<source name="TraceSourceApp" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="ConsoleListener"/>
<add name="ETWListener"/>
<remove name="Default"/>
</listeners>

什么是 默认 监听器,为什么它默认存在?

一个微软人做了 benchmarks of the overhead with different listeners :
Default                    |===============================14,196 ms=====/ /================> 
TextWriterTraceListener |=========211 ms======>
EventProviderTraceListener |=> 77ms

什么是 Default跟踪监听器,为什么这么慢?是吗 OutputDebugString ?是 OutputDebugString 真的比写入文件慢两个数量级吗?

有一个 .NET TraceListener 只使用 OutputDebugString ?

什么是默认跟踪监听器,为什么它这么慢,为什么通常会删除它,如果它如此糟糕,为什么它是默认值?

最佳答案

从那篇博文中并不清楚代码是如何运行的,但是 DefaultTraceListener 记录如下:

By default, the Write and WriteLine methods emit the message to the Win32 OutputDebugString function and to the Debugger.Log method. For information about the OutputDebugString function, see the Platform SDK or MSDN.



所以如果 Debugger.Log实际上正在打印到 UI 窗口(并且很可能滚动它等)我可以看到这导致了很多减速。

关于.NET 跟踪 : What is the "Default" listener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8010255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com