Я рассчитываю, сколько времени потребуется для выполнения трех различных типов поиска: последовательного, рекурсивного двоичного и итеративного двоичного. У меня они на месте, и он выполняет итерацию и завершает поиск. Моя проблема в том, что когда я измеряю их все, я каждый раз получаю 0 для всех, даже если я создаю массив из 100 000, и я ищу что-то не в массиве. Если я устанавливаю точку останова в поиске, это, очевидно, увеличивает время, и это дает мне разумное время, с которым я могу работать. Но в противном случае он всегда равен 0. Вот мой код, он одинаков для всех трех таймеров поиска.
clock_t recStart = clock();
mySearch.recursiveSearch(SEARCH_INT);
clock_t recEnd = clock();
clock_t recDiff = recEnd - recStart;
double recClockTime = (double)recDiff/(double)CLOCKS_PER_SEC;
cout << recClockTime << endl;
cout << CLOCKS_PER_SEC << endl;
cout << recClockTime << endl;
За последние два я получаю 1000
и 0
.
Я делаю что-то не так здесь? Или это в моем объекте поиска?
auto_cpu_timer
от boost, я никогда не оглядывался назад. Он позаботится обо всех этих вещах для вас. Создайте экземпляр таймера, пусть он выйдет за рамки, вуаля. - person us2012   schedule 17.02.2013clock()
, кажется, здесь работает нормально. - person phoeagon   schedule 17.02.2013recDiff
иCLOCKS_PER_SEC
по отдельности? - person jxh   schedule 17.02.2013