Ich versuche herauszufinden, wie die Ausführung eines Teils meines Programms Zeit, aber wenn ich den folgenden Code verwenden, alles, was ich jemals zurück 0 ist. Ich weiß das kann nicht stimmen. Der Code, den ich rekursiv bin, implementiert Mergesort eines großen Arrays von Ints. Wie bekomme ich die Zeit, um das Programm in Millisekunden auszuführen?C++ Codeausführung Timer gibt 0 zurück, benötigt Ausgabe in Millisekunden
//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()' hat nur zweite Genauigkeit (und auf einem 32bit-System kann es alle 36 Minuten wickeln), wenn 'mergeSort()' dauert weniger als 1 Sekunde zu laufen, würde das erklären, warum Sie ein Ergebnis von erhalten 0. Für das, was Sie versuchen, müssen Sie einen höherpräzisen Timer verwenden, z. B. von 'clock_gettime()', oder sogar eine OS-spezifische API. –