我想要监控多线程pthread应用程序中的上下文切换行为。在其他RTOSes(Micro C OS)中,我已经能够为应用程序中的每个线程注册一个上下文切换回调,然后记录(或切换gpio)并实时观察线程上下文切换。对于调试多线程的实时行为和交互,这是一个有价值的工具。
我当前的环境是使用pthread api的嵌入式linux。有
Linux Magazine的这篇文章解释了在Linux中实现线程的方式与商业Unixs (如Solaris )的不同之处。总之,Linux使用用户线程到内核线程的一对一映射,而Solaris使用多对多映射。本文暗示,这可能会给Solaris带来性能优势,特别是在线程之间切换时。在我花时间测试之前,有人已经做过了吗?
在某些情况下,我正在分析Memcached的执行情况,并且希望在特定函数的执行过程中监视dTLB未命中。假设Memcached产生多个线程,那么每个线程都有可能并行执行函数。我发现了一个特殊的解决方案,Perf功能切换事件(Using perf probe to monitor performance stats during a particular function),我的问题是: (a)据我所知,perf切换事件是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<