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