Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NOB2014 en 3 Septiembre 2014, 16:17 pm



Título: Medir el tiempo de una rutina en lenguaje C.
Publicado por: NOB2014 en 3 Septiembre 2014, 16:17 pm
Hola Amigos.
El enunciado del manual es el siguiente.-

(http://i57.tinypic.com/okrdl4.png)

Código
  1. //http://dacap.com.ar/blog/cpp/medir-el-tiempo-de-una-rutina/
  2. #include <stdio.h>
  3. #include <windows.h>
  4.  
  5. /* retorna "a - b" en segundos */
  6. double performancecounter_diff(LARGE_INTEGER *a, LARGE_INTEGER *b){
  7. LARGE_INTEGER freq;
  8. QueryPerformanceFrequency(&freq);
  9. return (double)(a->QuadPart - b->QuadPart) / (double)freq.QuadPart;
  10. }
  11.  
  12. int main(int argc, char *argv[]){
  13. int contador=0;
  14. LARGE_INTEGER t_ini, t_fin;
  15. double secs;
  16.  
  17. QueryPerformanceCounter(&t_ini);
  18. while(contador <= 300000000){
  19. contador++;
  20. if(contador % 100000000 == 0){
  21. QueryPerformanceCounter(&t_fin);
  22. secs = performancecounter_diff(&t_fin, &t_ini);
  23. printf("%.16g milliseconds\n", secs * 1000.0);
  24. QueryPerformanceCounter(&t_ini);
  25. }
  26. }
  27.  
  28. return 0;
  29. }


El programa que logré a partir de los ejemplos de la página me funciona correctamente (por lo menos es lo que a mí me parece) lo que pasa es que no entiendo casi ninguna línea (creo que tiene que ver con las API’s de windows), la pregunta es ¿alguien me puede decir si se puede lograr lo mismo con con un programa en C puro?, de ser así ¿podrian poner algún ejemplo?.-

Saludos.
Daniel


Título: Re: Medir el tiempo de una rutina en lenguaje C.
Publicado por: rir3760 en 3 Septiembre 2014, 18:57 pm
¿alguien me puede decir si se puede lograr lo mismo con con un programa en C puro?
No ya que al utilizar solo las facilidades de la biblioteca estándar de C (difftime, struct tm, clock) se garantiza una resolución en segundos, nada mas.

Para el calculo exacto lo mejor es utilizar extensiones (como es el caso con tu ejemplo usando la Win32 API).

Un saludo


Título: Re: Medir el tiempo de una rutina en lenguaje C.
Publicado por: NOB2014 en 3 Septiembre 2014, 19:35 pm
Hola rir.
Bueno parece que el tema no da para más, cuando aprenda a construir librerías haré una para esto y me quedará como una instrucción mas.-   

Saludos.
Daniel