From 3d40db6dbfe721e83654e961280176f10adf4272 Mon Sep 17 00:00:00 2001 From: Eduardo Souza <eduardomsouza@ufpr.br> Date: Thu, 24 Oct 2024 23:50:35 -0300 Subject: [PATCH] [ADD] TIMER --- a.out | Bin 0 -> 16392 bytes fila_edu_cir.c | 24 ++++++++++++++++++++++++ fila_edu_vetor_ot.c | 26 ++++++++++++++++++++++++++ fila_edu_vetor_simples.c | 26 ++++++++++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 a.out diff --git a/a.out b/a.out new file mode 100644 index 0000000000000000000000000000000000000000..084f7f8236acf30cbcab421912deff1446c6b235 GIT binary patch literal 16392 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 literal 0 HcmV?d00001 diff --git a/fila_edu_cir.c b/fila_edu_cir.c index 48a739e..a252912 100644 --- a/fila_edu_cir.c +++ b/fila_edu_cir.c @@ -1,5 +1,6 @@ #include <stdio.h> #include <stdlib.h> +#include <time.h> //Fila feita com vetor circular @@ -54,6 +55,29 @@ void destroi(struct Fila *fila) { } int main() { +/* PRIMEIRA FILA TEMPO */ + struct Fila *fila1 = cria(500); + struct timespec inicio, fim; + clock_gettime(CLOCK_MONOTONIC, &inicio); + + // Teste com várias inserções e remoções + // Vamos fazer 1000000 operações de enfileiramento e desenfileiramento para medir a performance + for (int i = 0; i < 1000000; i++) { + if (fila1->tamanho < fila1->capacidade) { // Insere metade das vezes + insere(fila1, (float) i); + } + if (i % 2 == 0 && fila1->tamanho > 0) { // Remove metade das vezes + remove_fila(fila1); + } + } + + // Captura o timestamp após as operações + clock_gettime(CLOCK_MONOTONIC, &fim); + double tempo_gasto = (fim.tv_sec - inicio.tv_sec) + (fim.tv_nsec - inicio.tv_nsec) / 1000000000.0; + printf("Tempo gasto: %.2f segundos\n", tempo_gasto); + destroi(fila1); + +/* SEGUNDA FILA */ struct Fila *fila = cria(5); insere(fila, 1); insere(fila, 2); diff --git a/fila_edu_vetor_ot.c b/fila_edu_vetor_ot.c index a00d728..9ed044b 100644 --- a/fila_edu_vetor_ot.c +++ b/fila_edu_vetor_ot.c @@ -1,5 +1,6 @@ #include <stdio.h> #include <stdlib.h> +#include <time.h> //Fila feita com vetor linear otimizado, ou seja, desloca elementos para esquerda quando o fim chega ao final do vetor @@ -72,6 +73,31 @@ void destroi(struct Fila *fila) { } int main() { + +/* PRIMEIRA FILA TEMPO */ + struct Fila *fila1 = cria(500); + struct timespec inicio, fim; + clock_gettime(CLOCK_MONOTONIC, &inicio); + + // Teste com várias inserções e remoções + // Vamos fazer 1000000 operações de enfileiramento e desenfileiramento para medir a performance + for (int i = 0; i < 1000000; i++) { + if (fila1->tamanho < fila1->capacidade) { // Insere metade das vezes + insere(fila1, (float) i); + } + if (i % 2 == 0 && fila1->tamanho > 0) { // Remove metade das vezes + remove_fila(fila1); + } + } + clock_gettime(CLOCK_MONOTONIC, &fim); + double tempo_gasto = (fim.tv_sec - inicio.tv_sec) + (fim.tv_nsec - inicio.tv_nsec) / 1000000000.0; + printf("Tempo gasto: %.2f segundos\n", tempo_gasto); + + destroi(fila1); + +/*SEGUNDA FILA TEMPO*/ + + struct Fila *fila = cria(5); insere(fila, 1); insere(fila, 2); diff --git a/fila_edu_vetor_simples.c b/fila_edu_vetor_simples.c index 512924b..b360722 100644 --- a/fila_edu_vetor_simples.c +++ b/fila_edu_vetor_simples.c @@ -1,5 +1,6 @@ #include <stdio.h> #include <stdlib.h> +#include <time.h> //Fila feita com vetor linear simples, ou seja, a cada remoção, move-se os elementos do vetor @@ -57,6 +58,31 @@ void destroi(struct Fila *fila) { } int main() { +/* PRIMEIRA FILA TEMPO */ + + struct Fila *fila1 = cria(500); + struct timespec inicio, fim; + clock_gettime(CLOCK_MONOTONIC, &inicio); + + // Teste com várias inserções e remoções + // Vamos fazer 1000000 operações de enfileiramento e desenfileiramento para medir a performance + for (int i = 0; i < 1000000; i++) { + if (fila1->tamanho < fila1->capacidade) { // Insere metade das vezes + insere(fila1, (float) i); + } + if (i % 2 == 0 && fila1->tamanho > 0) { // Remove metade das vezes + remove_fila(fila1); + } + } + + // Captura o timestamp após as operações + clock_gettime(CLOCK_MONOTONIC, &fim); + double tempo_gasto = (fim.tv_sec - inicio.tv_sec) + (fim.tv_nsec - inicio.tv_nsec) / 1000000000.0; + printf("Tempo gasto: %.2f segundos\n", tempo_gasto); + destroi(fila1); +/*SEGUNDA FILA*/ + + struct Fila *fila = cria(5); insere(fila, 1); insere(fila, 2); -- GitLab