Sto provando a misurare il tempo di esecuzione di un programma multi-thread. Ho utilizzare questo pezzo di codice nel programma principale per il calcolo del tempo:tempo di esecuzione nell'ambiente di multithreading
clock_t startTime = clock();
//do stuff
clock_t stopTime = clock();
float secsElapsed = (float)(stopTime - startTime)/CLOCKS_PER_SEC;
Ora il problema che ho è: per esempio eseguo il mio programma con 4 fili (ogni thread in esecuzione su un core), il il tempo di esecuzione è 21,39. Controllo il mio monitor di sistema in fase di esecuzione, dove il tempo di esecuzione è di circa 5,3.
Sembra che il tempo di esecuzione effettivo sia moltiplicato per il numero di FILETTATURE.
Qual è il problema ??
Puoi provare a creare un [Minimal, complete e verificabili Esempio] (http://stackoverflow.com/help/mcve) e mostraci? Perché con solo il codice che ci mostri è impossibile dire qualcosa di sicuro. –