首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在perfview中解释RtlUsrThreadStart?

如何在perfview中解释RtlUsrThreadStart?
EN

Stack Overflow用户
提问于 2016-04-08 15:49:38
回答 1查看 936关注 0票数 3

看着PerfView中CPU栈的快照,我不确定如何解释第一条记录。

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

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

它在内部做了什么而占用了时间(因为它显示了如此多的独占时间)?

编辑

如果我在GroupPats部分中选择"no group“(所以是空字符串),那么ntdll!RtlUserThreadStart帧就在末尾(几乎不占用任何CPU时间)。还有很多低级函数调用,我不能解释得很愚蠢,因为它们是内部调用的,但总体上看要好得多。

Edit2 (用于用户)

我今天放弃了PerfView会议。它是服务器应用程序,所以有很多线程。所以这个视图对于单线程来说是可以的,但是对于我的目的来说并不是很有价值。我想基本上按名称视图查看,但我不太确定其中的RtlUserThreadStart是什么意思。

EN

回答 1

Stack Overflow用户

发布于 2019-09-06 21:46:06

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36494281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档