【发布时间】:2017-07-28 18:29:22
【问题描述】:
我正在编写一个分析器,我想知道自创建线程以来的总时间以及该线程用于特定计算的总 CPU 时间。
总时间我的意思是:时间包括线程因任何原因被阻塞所花费的时间,因此自thread my_thread(function)之类的事情以来经过的总时间。
getrusage 为我提供了调用线程的 CPU 时间,这很好,但是,我还想知道自线程创建以来经过的总时间。我根本找不到任何 C++ 库。
我可以通过检测程序并插入一个简单的时间戳方法(如chrono 函数)在创建/生成线程时获取时间戳,然后在我进行计算时获取另一个时间戳,它们的区别是我的时间想。然而,即使经过一番搜索,我也无法弄清楚如何使用 LLVM 通道检测线程入口/生成点。
关于如何在 LLVM 通道中检测线程入口/生成点有什么建议吗?
最好的问候!
【问题讨论】:
标签: c++ multithreading time profiling llvm