Я вызываю argon2 — функцию хеширования с интенсивным использованием памяти в Qt и измеряю время ее работы:
...
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? Какие часы() на самом деле измеряют?
env: виртуальная коробка, Ubuntu 14.04 64-разрядная версия, Qt5.2.1, Qt Creator 3.0.1.
QElapsedTimer
, который тривиален в использовании и максимально точен для вашей платформы. - person dtech   schedule 15.12.2016