我有一个应用程序,我想使用 Windows 性能分析器对其进行分析。一切正常,但我没有从我的应用程序中获得任何合理的堆栈跟踪。
有问题的应用程序是一个演示应用程序。这是为了给我一个很好的感觉,如果全部检查出来。然后我想分析另一个应用程序。因为我可以完全控制我的演示应用程序,所以我包含了一些标记函数,它们应该显示在堆栈跟踪中。
在 Windwos 7 1上运行应用程序时,Process Explorer 会显示我想要分析的部件的正确堆栈跟踪。这是第 7 - 9 行中带有标记函数的堆栈跟踪:
由于我在 Windows 10 VM 2 中安装了所有性能分析工具,因此我开始在那里进行分析。首先要注意:Process Explorer 没有显示正确的堆栈跟踪。我实现的标记功能无处可寻。
尽管如此,我还是使用UIforETW和Windows Performance Recorder记录了性能轨迹。在 WPA 中打开它们并专注于目标应用程序时,这是堆栈跟踪:
我感兴趣的所有信息都丢失了。堆栈显示为<Application>.exe!<Missing ImageId event>
我做错了什么?
如果这给你一个提示,这里是安装的相关软件:
1:Windows 7 计算机安装了 Visual Studio (C#)。
2:Windows 10 虚拟机没有 Visual Studio,但安装了 WinDBG(预览版)和 Windows Performance Toolkit。
我标记了delphi,因为目标应用程序是用 Delphi 编写的。
我正在捕获 ADO.Net 诊断 ETW,如SQL Server 2008 中的数据访问跟踪中所述。设置有效,生成了一个 ETL 文件,如果我使用tracerpt ,我可以看到 ADO.Net 跟踪:
System.Data, TextA, 0, 0, 0, 0, 17, 0, 0x0000000000000000, 0x000007D0, 0x00003A64, 1, , , {00000000-0000-0000-0000-000000000000}, , 131485096603462277, 450, 2400, 2, "enter_01 <prov.DbConnectionHelper.CreateDbCommand|API> 1# "
System.Data, TextA, 0, 0, 0, 0, 17, 0, 0x0000000000000000, 0x000007D0, 0x00003A64, 1, , , {00000000-0000-0000-0000-000000000000}, , 131485096603469806, 450, 2400, 2, "<sc.SqlCommand.set_Connection|API> 1#, 1# "
System.Data, TextA, 0, 0, 0, 0, 17, 0, 0x0000000000000000, 0x000007D0, 0x00003A64, 1, , , {00000000-0000-0000-0000-000000000000}, , 131485096603469816, 450, …
Run Code Online (Sandbox Code Playgroud) 我为CLR提供者记录了ETW事件:
xperf -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4 -f clr.etl
...
xperf -stop clr
Run Code Online (Sandbox Code Playgroud)
然后在wpa.exe中打开clr.etl并看到大量的"通用事件".但似乎wpa不显示MSDN中描述的一些数据
我能看到的与此类似:
Process Unknown
Id 1
Opcode Name
Task Name
Provider Name e13c0d23-ccbc-4e12-931b-d9cc2eee27e4
Time 0,071731589s
Selection Duration 0,416407863s
Start Time 0,002151869s
End Time 0,418559732s
Data Points 1
Table Data Point Selection
Cpu 0
ThreadId 50 440
Sum of Count 1 23
Time (s) 0,071846769
Run Code Online (Sandbox Code Playgroud)
像这样的厕所是GCStart_V1
事件,但我找不到例如田地Reason
是否有可能在wpa中看到通用事件数据?
WPA版本 - 10.0.10586.212
windows-performance-analyzer ×3
etw ×2
xperf ×2
debugging ×1
delphi ×1
sql-server ×1
windows ×1
wmi ×1