C/Visual C - Funcion que mida tiempo en C

 
Vista:

Funcion que mida tiempo en C

Publicado por Clayder (16 intervenciones) el 21/07/2008 22:59:25
Hola:

Quisiera saber como medir el tiempo que se demora en ejecutar cierta función en C. Lo que sucede es que necesito saber el tiempo de ejecucion de algunos algoritmos de ordenación, para lo que necesito alguna funcion que me pueda ayudar con ello. ¿Existe alguna?, y ¿en que biblioteca esta?.

Gracias de antemano.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funcion que mida tiempo en C

Publicado por imDoK! (4 intervenciones) el 22/07/2008 21:27:33
// Hay una funcion de la API de windows cuyo prototipo es el que sigue:

// DWORD WINAPI GetTickCount( void );

// Como podras ver devuelve un DWORD o Doble palabra que no es mas que un:
// unsigned long...

// Esta funcion te devuelve el numero de milisegundos que han pasado desde que se inicio el sistema, es decir desde que encendiste tu compu : ), con la ayuda de algunos calculos matematicos puedes resolver tu problema...

#include <windows.h>
#include <iostream>
using namespace std;

int MiFunc(); // Prototipo de mi funcion

int main()
{

DWORD ulTiempoInicio;
DWORD ulTiempoFin;

// Obtengo el numero de milisegundos pasados antes de ejecutar la funcion.
ulTiempoInicio = GetTickCount();
cout << ulTiempoInicio << endl;

// Ejecutas la funcion que desees tomar tiempo...
MiFunc();

// Obtengo el numero de milisegundos despues de ejecutar la funcion.
ulTiempoFin = GetTickCount();
cout << ulTiempoFin << endl;

// Resto el inicio - fin y obtengo el numero de milisegundos que tardo la funcion
// en ejecutarse.
ulTiempoFin -= ulTiempoInicio ;

cout << "La funcion se ha tardado " << ulTiempoFin << " milisegundos en ejecutarse..." << endl;
return 0;
}

// La funcion solo sirve para perder tiempo....
int MiFunc()
{
for(int x = 0; x < 32000; x++)
for(int y = 0; y < 32000; y++)
;
return 0;
}

// Si quieres saber la cantidad de segundos, pues aplica regla de tres y asignale el
// resultado a un float haciendole un casting al resultado... espero haberte ayudado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar