gpt4 book ai didi

.net - 我如何解释 perfview 中的 RtlUsrThreadStart?

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

在 PerfView 中查看来自 CPU 堆栈的 sshot 我不确定如何解释第一条记录。

enter image description here

我不能安全地排除记录,因为 CallTree 中的每个线程都从这个帧开始。但困扰我的是为什么帧需要独占 181 秒以及如何使用三帧。

我应该在 CPU 堆栈中安全地忽略它吗?

它在内部做了什么,它需要时间(因为它显示了这么多的独占时间)?

编辑

如果我在 GroupPats 部分选择“无组”(因此为空字符串),则 ntdll!RtlUserThreadStart 框架位于末尾(它“占用”几乎没有 CPU 时间)。还有很多低级函数调用,我不能轻易解释,因为它们是内部调用的,但总的来说它要好得多..

Edit2(给用户)

我今天参加了 PerfView session 。它是服务器应用程序,因此有很多线程。所以这个 View 对于单线程来说是可以的,但对于我的目的来说不是很有值(value)。我基本上想查看“按名称” View ,但我不太确定那里的 RtlUserThreadStart 是什么意思..

enter image description here

最佳答案

Windows 线程从一个公共(public)线程启动包装函数开始:Ntdll.dll 中的 RtlUserThreadStart

RtlUserThreadStart 调用的方法默认汇总,因为 GroupPats 在 PerfView 启动时设置为“Just My App”。将其更改为“无分组”或“分组模块”(如帮助文件中所述):

enter image description here

此外,如果您在方法名称中看到问号,您可以查找符号以使名称变得有意义。

enter image description here

关于.net - 我如何解释 perfview 中的 RtlUsrThreadStart?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36494281/

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