我有兴趣编写一个性能分析器(只是为了好玩)。我想在Linux中跟踪上下文切换,以便我可以记录上下文切换和上下文切换线程(属于被分析的进程)之间的时间。除了时间之外,我还想记录相关的callstack(在它们与以前记录的堆栈不同的情况下)。
另外,我想知道是否有类似于Windows' Linux上的ETW?
PS:我确实尝试在线搜索,但找不到任何相关信息。方法似乎是使用基于计时器的信号,但我觉得这将是不精确的。
答案 0 :(得分:2)
查看http://en.wikipedia.org/wiki/DTrace(许多Linux发行版都提供)。除此之外,还可以使用仪器上下文切换,以便获取该信息。
它与* nix上的ETW最相似。
linux_perf也可能已经做了你想做的事 - https://perf.wiki.kernel.org/index.php/Main_Page
你对自己真正想要的东西不太清楚,所以希望这些指针有所帮助。