我正在尝试以编程方式获取到目前为止特定线程所花费的总时间。
getrusage
返回一个线程的 CPU 时间,但我想要总时间,即包括线程因任何原因被阻塞所花费的时间。
请注意,我将通过使用我编写的分析器检测给定程序来利用此功能。
一个程序可能有很多线程(我专注于分析服务器,所以可以有很多)。在任何给定时间,我都想知道特定线程花费了多少时间(到目前为止)。因此,在每个线程产生时为每个线程启动一个计时器并不方便。所以我想要一些类似于它的用法,getrusage
例如它返回当前线程的总时间,或者我可以将一个线程ID传递给它。因此,手动机制(例如在生成线程时获取时间戳,然后再获取它们的差异)对我来说不是很有帮助。
谁能建议如何做到这一点?
谢谢!