我想要监控多线程pthread应用程序中的上下文切换行为。在其他RTOSes(Micro C OS)中,我已经能够为应用程序中的每个线程注册一个上下文切换回调,然后记录(或切换gpio)并实时观察线程上下文切换。对于调试多线程的实时行为和交互,这是一个有价值的工具。
我当前的环境是使用pthread api的嵌入式linux。有没有一种方法可以监控每个上下文切换?
在使用java飞行记录(JFR)对其进行分析时,我们看到上下文切换速率为每秒8400次(如java任务控制上的热线程选项卡中所示)。分析jfr中的热线程,cpu使用率似乎分布在应用程序线程之间,每个线程使用不到3%的cpu。Oracle Linux Server 6.4版是我们的操作系统,linux内核版本为2.6.39-400.214.4.el6uek.x86_64。我尝试执行linux命令,即"watch -n0.5 pidstat -w