1

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

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

4

1 回答 1

0

根据《Solaris 平台上的线程优先级》 ,Solaris 9 及更高版本默认线程与 LWP( Light-Weight Processes)一一对应。因此,根据getrusage 的手册页,您应该可以调用getrusage(RUSAGE_LWP, ...).

于 2010-04-09T20:25:10.307 回答