【问题标题】:Method of programmatically getting CPU time for thread, in C, that works on both OpenSolaris and Linux以 C 语言以编程方式获取线程 CPU 时间的方法,适用于 OpenSolaris 和 Linux
【发布时间】:2010-04-09 19:53:08
【问题描述】:

我有一个用 C 语言编写的小型守护程序,我需要一种方法来获取线程上的当前 CPU 时间。 Linux 显然提供了许多方法来执行此操作,clock_gettime(CLOCK_THREAD_CPUTIME_ID, ...)、pthread_getcpuclockid()、getrusage(RUSAGE_THREAD, ...) 但 OpenSolaris 2009.06 似乎不支持这些方法。

是否有一种跨平台友好的方式来获取线程的当前 CPU 时间?如果没有,有没有办法在 OpenSolaris 中做到这一点?在这一点上,我什至愿意放入一堆丑陋的编译器指令来完成这项工作。

【问题讨论】:

    标签: c linux pthreads opensolaris


    【解决方案1】:

    根据"Thread Priority on the Solaris Platform",Solaris 9 及更高版本默认线程和 LWP 之间是一一对应的(Light-Weight Processes)。所以按照getrusage's manpage,应该可以拨打getrusage(RUSAGE_LWP, ...)

    【讨论】:

      猜你喜欢
      • 2016-08-24
      • 2013-04-06
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 2017-03-16
      相关资源
      最近更新 更多