我需要找出在一定时间内(例如1秒左右),给定进程执行了多少个CPU内核? 这必须从C程序(或可能C++)完成。我知道perf的数量是cpu-migrations
。如何获得一个程序在Linux和CPU负载下执行的内核数量
我需要知道CPU核心交换的数量以及进程使用的内核数量。 我假设我首先必须获取进程执行的线程,然后查看线程运行的内核。
我得到的信息将用于计算进程的CPU负载。当我只用一个CPU内核运行时,我知道该怎么做,并且有一个可行的解决方案。但是,处理多个CPU内核会导致由多个线程组成的进程在不同时间运行在一个或多个CPU内核中,这使得它更难。有没有解决方案或提示解决任何人在这里可以指向?
也许有人指出,这篇文章可以帮助:http://stackoverflow.com/q/26362261/3194340即使这是关于迫使一些CPU的过程 – Coconop 2014-11-04 09:33:37
@Coconop感谢您的评论。但是,我不能(也不愿意)改变我观察到的过程的亲和力。 – Curious 2014-11-04 09:38:43