C++ 使用Qt测量过程的实际运行时间

C++ 使用Qt测量过程的实际运行时间,c++,qt,runtime,standby,C++,Qt,Runtime,Standby,我想测量一个持续几天的过程的运行时间。这意味着执行过程将被中断多次,因为Linux PC将被反复挂起以待机。我不想在我的时间测量中包括这些睡眠阶段,所以我不能使用简单的时间戳 除了每秒触发一个QTimer并计算那些超时之外,还有更好的方法来测量过程的净运行时间吗?正如G.M.所建议的,我使用了boost::timer::cpu\u timertime来解决我的问题。它返回整个过程的计算时间和运行时间的总和,这对于我来说很好。Boost不是Qt,但它是跨平台的。你可以看看Boost.timer——

我想测量一个持续几天的过程的运行时间。这意味着执行过程将被中断多次,因为Linux PC将被反复挂起以待机。我不想在我的时间测量中包括这些睡眠阶段,所以我不能使用简单的时间戳


除了每秒触发一个QTimer并计算那些超时之外,还有更好的方法来测量过程的净运行时间吗?

正如G.M.所建议的,我使用了
boost::timer::cpu\u timer
time来解决我的问题。它返回整个过程的计算时间和运行时间的总和,这对于我来说很好。Boost不是Qt,但它是跨平台的。

你可以看看Boost.timer——具体来说。这是什么样的过程?它是应用程序、脚本还是函数?@vahancho:由应用程序中的多个工作线程执行的计算。这两种方法我都可以,一种是测量所有线程的累计时间的方法,另一种是测量线程处于活动状态的绝对时间的方法(不管有多少线程在工作)。@Silicomancer,大致上,我会让每个线程在单独运行时计算时间。如果您使用
QTimer
只需每秒递增计数器,例如,在
timeout()
信号上。线程完成后,读取计数器(秒)值并存储它。对所有线程重复此操作。换句话说,您不应该通过从结束时间减去开始时间来测量时间,而应该仅在计时器处于活动状态时计算时间。@vahancho:好主意,但是当线程忙时,它们不侦听事件,也不进入事件循环。也许我可以改变这一点,但它基本上是计算周期性事件,我希望有一种更优雅的方式。