Monday, February 06, 2006

Comparacion de velocidad utilizando sizeof()

#include cstdlib
#include iostream
#include stdlib.h
#include time.h
#include stdio.h
#include sys\timeb.h
using namespace std;

timeb Antes, Despues;

static void Generar(int numero)
{
FILE *Archivo;
Archivo = fopen("C:\\Codigo.txt","w");
for(int i = 0 ; i < numero ; ++i)
fprintf(Archivo,"Numeros[%i] = 0;\n",i);
}

int main(int argc, char *argv[])
{
//Generar(500000);
//int Numeros[400000];
ftime(&Antes);
int MAX = 518800;
void *Numeros2;
Numeros2 = malloc(sizeof(int) * MAX);
memset(Numeros2,1,sizeof(int) * MAX);
ftime(&Despues);
//float differencia = (float(difftime(Despues.time,Antes.time))) + (float(abs(Despues.millitm - Antes.millitm))/1000);
float differencia = (float(difftime(Despues.time, Antes.time))) + (float(abs(Despues.millitm - Antes.millitm))/1000);
cout << Despues.millitm << " " << Antes.millitm << endl;
printf("Diferencia de tiempo: %.3f segundos.\n",differencia);
free(Numeros2);
system("PAUSE");
return EXIT_SUCCESS;
}

Una vez mas no pude comprar el arreglo inicializandolo 1 a 1. De esta manera propuesta nunca me dio una diferencia de tiempo cuando la computadora estaba idle. Me llego a dar differencia de .015 y .016 millisegundos, pero solo cuando cargaba la PC con mas tareas.

Me lo encuentro que raro que siempre son .015 y .016 millisegundos, no importa cual metodo utilize. Investigare sobre esta occurencia. Como quiera, la occurencia de differencia de tiempo pasa menos vecez con este metodo que con los anteriores.

No comments: