这是我第一次尝试分析多线程程序。
我怀疑问题是它在等待什么,但我不知道是什么,程序永远不会达到 100% 的 CPU、GPU、RAM 或 I/O 使用率。
直到最近,我只从事单线程的项目,或者线程非常简单的项目(例如:通常一个额外的线程只是为了确保在程序运行时 UI 不会被锁定,或者一旦我用一个单独的线程来处理 .XM 和 .IT 文件音乐,以便主线程可以做所有事情,而另一个内核中的另一个线程可以负责解码这些文件)。
该程序有多个线程,它们不会在相同的任务上进行并行工作,每个线程都有自己完全独立的目的(例如,一个线程专用于处理对操作系统的所有与声音相关的 API 调用)。
我下载了 Microsoft 性能工具,有一个前 Valve 员工的博客解释说他们努力做到这一点,但尽管我什至设法制作了一些配置文件之类的东西,但我并不真正理解我所看到的,它是对我来说只有一堆漂亮的图表(除了 CPU 使用图表,我已经从对单线程应用程序进行基于样本的分析中知道了),那么,我如何找到程序等待某些东西的原因?或者我如何找到它在等待什么?我如何找到哪个线程阻塞了其他线程?