【问题标题】:Calculating accurate cpu usage per task in assembly计算装配中每个任务的准确 cpu 使用率
【发布时间】:2016-04-22 02:58:39
【问题描述】:

我有一个用 C++ 编写的多任务程序,我想以亚秒为单位计算每个线程的 CPU 使用率(可能是 100 毫秒) 你可能知道 /proc/stat 或类似的东西在那个时间分辨率上没有准确性。

我想知道有没有办法计算汇编或 C/C++ 中每个线程消耗的时钟周期?

【问题讨论】:

  • “准确”是不可能的
  • 那么,你怎么知道在哪个线程中花费了多少时间,以及在其他线程中花费了多少时间(例如,在“让我们解开刚刚进来的这个网络数据包”或“让我们将操作系统刚刚释放的页面的内存归零”等)
  • 你想用这些信息做什么?
  • 时钟周期或每条指令的时钟计数取决于处理器。您使用的是哪个处理器?

标签: c++ multithreading assembly inline-assembly


【解决方案1】:

从 Linux 2.6.12 和 glibc 2.4 开始,您可以使用 clock_gettimeCLOCK_THREAD_CPUTIME_ID 类型的时钟来获取可靠的计时信息

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 2019-01-01
    • 2020-11-07
    • 2014-06-15
    • 1970-01-01
    • 2012-06-13
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多