如何找出哪些所有线程在 2 个特定点之间获得了 CPU 时间?

问题描述 投票:0回答:1

我运行在linux 4.1上 我有一个用户模式应用程序。 在该应用程序中,我想找出哪些线程必须在 CPU 上运行,每个线程必须在 CPU 上运行多长时间,以及我感兴趣的线程休眠了多长时间。

但是我想在程序中的 2 个特定点之间执行此操作。

例如,C++ 程序如下所示:

main()
{
<start 26 threads>
A();
.....
.....
......
B();
}

我有A()和B()的代码。

所以我想知道有多少线程在 A 和 B 之间获得了 CPU 时间,以及 A 和 B 之间主线程休眠/等待的时间。

并且这台机器上还有 1 个 CPU。

c++ linux multithreading linux-kernel
1个回答
0
投票

我建议尝试使用 valgrind

进行分析
© www.soinside.com 2019 - 2024. All rights reserved.