我正在调用Qt中的argon2 - 一种内存密集型哈希函数,并测量其运行时间:
...
QTime start = QTime::currentTime();
// call hashing function
QTime finish = QTime::currentTime();
time = start.msecsTo(finish) / 1000.0;
...
在argon2库的测试用例中,时间以另一种方式进行测量:
...
clock_t start = clock();
// call hashing function
clock_t finish = clock();
time = ((double)finish - start) / CLOCKS_PER_SEC;
...
我按照他们测试用例中的方式调用函数,但是我得到了一个两倍大的数字(速度两倍慢)。为什么?如何在Qt中测量函数运行时间?clock()实际上测量什么? 环境:virtualBox,Ubuntu14.04 64位,Qt5.2.1,Qt Creator 3.0.1。
QElapsedTimer
,它非常容易使用,并且在给定平台的情况下尽可能准确。 - dtech