Linux获得上下文切换时序

时间:2017-03-20 06:29:36

标签: c linux profiling context-switch

我正在实施某种形式的内部探查器。有没有办法知道线程上下文切换的时间和持续时间?我知道windows有事件跟踪api,我知道perf记录了多少个上下文切换。有没有办法在linux上做到这一点?需要root权限不是问题,因为它将是一个内部工具。

1 个答案:

答案 0 :(得分:2)

排序。

有关getrusage()功能的信息,请参阅http://man7.org/linux/man-pages/man2/getrusage.2.html

请注意,它返回的结构具有自愿和非自愿的上下文切换号。此外,您还拥有用户和系统时间。其他API返回挂钟时间。

任何超过用户和系统时间的挂钟时间都是您未运行的时间。

除此之外,您可以使用内核ftrace功能。见https://www.kernel.org/doc/Documentation/trace/ftrace.txt

阅读http://www.brendangregg.com/blog/2015-07-08/choosing-a-linux-tracer.html了解更多选项。