Я пытаюсь выяснить, как выполнить часть части моей программы, но когда я использую следующий код, все, что я когда-либо получаю, это 0. Я знаю это не может быть прав. Код, который я использую, рекурсивно реализует mergesort большого массива int. Как получить время, необходимое для выполнения программы в миллисекундах?C++ код выполнения таймер возврата 0, требуется вывод в миллисекундах
//opening input file and storing contents into array
index = inputFileFunction(inputArray);
clock_t time = clock();//start the clock
//this is what needs to be timed
newRecursive.mergeSort(inputArray, 0, index - 1);
//getting the difference
time = clock() - time;
double ms = double(time)/CLOCKS_PER_SEC * 1000;
std::cout << "\nTime took to execute: " << std::setprecision(9) << ms << std::endl;
'clock()' имеет только вторую точность (и на 32-битной системе он может обертываться каждые 36 минут), поэтому, если 'mergeSort()' занимает менее 1 секунды для запуска, это объясняет, почему вы получаете результат 0. Для того, что вы пытаетесь, вам нужно использовать таймер с более высокой точностью, например, от 'clock_gettime()' или даже API, специфичный для ОС. –