gpt4 book ai didi

c# - 使用 XPerf 查看事件数据?

转载 作者:行者123 更新时间:2023-11-30 17:10:28 28 4
gpt4 key购买 nike

我正在试验使用 XPerf 来检测应用程序以进行性能分析。我的目标是记录我的 C# 应用程序中的启动/停止事件,并分析这些事件之间的某些内核指标。

我正在我的应用程序中创建一个 TraceListenerTraceSource 并将事件记录到源中。然后我使用 logman 启动两个 session :一个从我的提供程序捕获事件,另一个捕获内核事件 (xperf -on DiagEasy)。在 session 结束时,我使用 XPerf 将这些文件合并在一起并查看/叠加图表。所有这些都运作良好。

我的应用程序的事件显示在“通用事件”图表中,但是这些事件没有标识信息(没有名称,没有事件数据),因此很难分辨哪个事件是哪个。我知道我的事件数据已被捕获,因为当我在跟踪输出上运行 tracerpt 时,它出现在“dumpfile.xml”中。有什么方法可以将事件名称或事件数据附加到 XPerf 中的“通用事件”?我使用 XPerf 的方法有误吗?

下面是一些演示我如何使用 ETW 的示例代码:

static Guid providerId = new Guid("{4A9FD4F3-032B-4733-8455-03BC71ECEFB0}");
static void Main(string[] args)
{
EventProviderTraceListener listener =
new EventProviderTraceListener(providerId.ToString());
TraceSource source = new TraceSource("ProductRepository", SourceLevels.All);
source.Listeners.Add(listener);

int id = 12;
source.TraceData(TraceEventType.Warning, 12, "Some sample data");
source.TraceEvent(TraceEventType.Start, 1, "TraceEvent.Start({0})", id);
source.TraceEvent(TraceEventType.Stop, 1, "TraceEvent.Stop({0})", id);
source.TraceInformation("TraceInformation");
}

最佳答案

使用 .net 4.5 中的新 System.Diagnostics.Tracing.EventSource 类。 Vance 创建了一个如何使用它的演示:

简介教程:在 C# 中记录 ETW 事件:System.Diagnostics.Tracing.EventSource http://blogs.msdn.com/b/vancem/archive/2012/07/09/logging-your-own-etw-events-in-c-system-diagnostics-tracing-eventsource.aspx

关于c# - 使用 XPerf 查看事件数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12208243/

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