0

在我分析 ASP.NET Core 应用程序后,JetBrain 的 dotTrace工具默认打开All Calls选项卡并显示线程列表。

你能澄清我的一些问题吗?

  • 在我的分析会话期间,我向 Web 应用程序发送了大约 10 万个请求。这些线程(除了Main一些系统线程,如Finalizer线程)是线程池用来根据下图处理所有这些请求的唯一线程吗?

  • 理想情况下,我希望了解占用大量 CPU 的函数的详细信息(即分析会话中最热门的方法),所以我一直想知道这个线程视图实际上有什么帮助?

  • 您是否认为线程池中可能有更多线程可以被使用并返回到线程池,但是分析器只能“捕获”特定线程池线程的信息,因为这些线程池线程是在那段时间执行?我这样说是因为对于 ~100K 请求,这里显示的线程数似乎更少,但我可能是错的。(可能是基于执行的并发请求数?)

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

0

当您在应用程序中使用真正的线程时,线程视图很有用。例如,在 WPF 中,主线程仅用于调度程序,而您的自定义线程用于后台工作。

在您的情况下,您仍然可以扩展调度以查看内部执行的内容。您还可以使用跟踪模式查看池工作人员内的请求数。

显示在您的分析记录期间实际使用的所有线程,每个线程将执行大量请求

对于这种用途,我更喜欢 Timeline 模式,因此您可以过滤所有请求并查看执行的所有线程。

于 2018-11-23T09:16:42.660 回答