#include #include #include #include #include #include /* * Esse código apresenta duas maneiras de medir o tempo de computação de um * trecho do seu código. Um dos métodos utiliza métodos da biblioteca time.h * disponível para C/C++ e o segundo utilizando a biblioteca chrono disponível * para C++. Ambas bibliotecas são distribuídas junto dos compiladores (GCC, por * exemplo). * * O exemplo usado na medição é a ordenação de um vetor de 8000000 inteiros * gerados aleatoriamente. * * Compile: * g++ mede_tempo.cpp -o mede_tempo * Execute: * ./mede_tempo */ using namespace std; int main(int argc, char *argv[]) { // número de elementos long int N = 8000000; // define a semente do gerador pseudo-aleatório srand(unsigned(time(0))); // vetor de N elementos vector V(N); // gera N inteiros aleatórios e armazena em V generate(V.begin(), V.end(), rand); // estruturas auxiliares para utilizar a biblioteca time.h clock_t tempo_inicio = 0, tempo_termino; // tempo de início usando a biblioteca chrono auto tempo_inicio_c = chrono::high_resolution_clock::now(); // tempo de início usando a biblioteca time.h tempo_inicio = clock(); sort(V.begin(), V.end()); // tempo de término usando a biblioteca time.h tempo_termino = clock(); // tempo de término usando a biblioteca chrono auto tempo_termino_c = chrono::high_resolution_clock::now(); // calcula a diferença dos tempos de término e início; imprime o resultado printf("[CLOCK] Tempo total: %.2f segundos\n", ((tempo_termino - tempo_inicio) / (float)CLOCKS_PER_SEC)); printf("[CHRONO] Tempo total: %.2f segundos\n", chrono::duration(tempo_termino_c - tempo_inicio_c).count()); return 0; }