gpt4 book ai didi

c++ - 如何查找 C/C++ 中线程使用的总时间?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:44:11 24 4
gpt4 key购买 nike

我正在尝试以编程方式获取特定线程到目前为止花费的总时间。

getrusage 返回线程的 CPU 时间,但我想要时间,即包括线程因任何原因被阻塞所花费的时间。

请注意,我将通过使用我编写的分析器检测给定程序来利用此功能。

一个程序可能有很多线程(我专注于分析服务器,所以可能有很多)。在任何给定时间,我都想知道特定线程花费了多少时间(到目前为止)。因此,在生成每个线程时为它们启动一个计时器并不方便。所以我想要一些类似于 getrusage 的用法,例如它返回当前线程的总时间,或者我可以向它传递一个线程 ID。因此,手动机制(例如在生成线程时获取时间戳,然后在稍后获取它们的差异)对我来说不是很有帮助。

谁能建议如何做到这一点?

谢谢!

最佳答案

保存线程启动时的当前时间。线程花费的总时间,包括运行时间和阻塞时间,就是:

current_time - start_time

当然这几乎总是无用/无意义的,这就是为什么没有专门的 API 的原因。

关于c++ - 如何查找 C/C++ 中线程使用的总时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42624624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com