我正在实现某种形式的内部分析器。有没有办法知道线程上下文切换的时间和时间?我知道 Windows 有事件跟踪 api,我知道 perf 记录发生了多少上下文切换。有没有办法在 Linux 上做到这一点?需要 root 权限不是问题,因为它将是一个内部工具。
最佳答案
有点。
参见 http://man7.org/linux/man-pages/man2/getrusage.2.html关于 getrusage()
函数。
请注意,它返回的结构具有自愿和非自愿的上下文切换编号。此外,您还有用户和系统时间。其他 API 返回挂钟时间。
任何大于您的用户和系统时间的挂钟时间都是您未运行的时间。
除此之外,您可能还可以使用内核 ftrace 功能。参见 https://www.kernel.org/doc/Documentation/trace/ftrace.txt
阅读http://www.brendangregg.com/blog/2015-07-08/choosing-a-linux-tracer.html更多选择。
关于c - Linux 获取上下文切换时序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42897118/