我需要找出在一定時間內(例如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