我正在实施某种形式的内部分析器。是否有一种方法可以知道何时和多长时间线程被切换出上下文?我知道windows拥有事件跟踪api,我知道perf记录了发生了多少个上下文切换。有什么方法可以在linux上实现吗?需要根权限并不是一个问题,因为它将是一个内部工具。
发布于 2017-03-20 06:37:54
说大也大吧。
请参阅关于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获得更多的选项。
https://stackoverflow.com/questions/42897118
复制相似问题