Medida de tiempo en C- gettimeofday
Hola a todos!
Tengo que comparar el tiempo que tarda un programa en multiplicar dos matrices usando dos librerias distintas, para ver cuál de ellas es más rápida. El caso es que no tengo muy claro es uso de la orden gettimeofday. Trabajo en ubuntu, y he leído que es una de las que da mayor precisión. En el código que os adjunto, veréis que hago suma+=(secs*1000.0); ¿Es así o dividiendo entre 1000?
Os dejo el código:
[code type="c"]#include
#include
#include
#include
#include
#define MAX 100
double timeval_diff(struct timeval *a, struct timeval *b)
{
return
(double)(a->tv_sec + (double)a->tv_usec/1000000) -
(double)(b->tv_sec + (double)b->tv_usec/1000000);
}
int main(int argc, char **argv)
{
int i,j;
double *mat1, *mat2, *sol;
int tam;
struct timeval t_ini, t_fin;
double secs, media, suma=0.0;
sscanf (argv[1], "%d", &tam);
mat1=malloc(sizeof(double)*tam*tam);
mat2=malloc(sizeof(double)*tam*tam);
sol=malloc(sizeof(double)*tam*tam);
for(i=0; i
Tengo que comparar el tiempo que tarda un programa en multiplicar dos matrices usando dos librerias distintas, para ver cuál de ellas es más rápida. El caso es que no tengo muy claro es uso de la orden gettimeofday. Trabajo en ubuntu, y he leído que es una de las que da mayor precisión. En el código que os adjunto, veréis que hago suma+=(secs*1000.0); ¿Es así o dividiendo entre 1000?
Os dejo el código:
[code type="c"]#include
#include
#include
#include
#include
#define MAX 100
double timeval_diff(struct timeval *a, struct timeval *b)
{
return
(double)(a->tv_sec + (double)a->tv_usec/1000000) -
(double)(b->tv_sec + (double)b->tv_usec/1000000);
}
int main(int argc, char **argv)
{
int i,j;
double *mat1, *mat2, *sol;
int tam;
struct timeval t_ini, t_fin;
double secs, media, suma=0.0;
sscanf (argv[1], "%d", &tam);
mat1=malloc(sizeof(double)*tam*tam);
mat2=malloc(sizeof(double)*tam*tam);
sol=malloc(sizeof(double)*tam*tam);
for(i=0; i
#include
#include
#include
#include
#include
#define MAX 100
double timeval_diff(struct timeval *a, struct timeval *b)
{
return
(double)(a->tv_sec + (double)a->tv_usec/1000000) -
(double)(b->tv_sec + (double)b->tv_usec/1000000);
}
int main(int argc, char **argv)
{
int i,j;
double *mat1, *mat2, *sol;
int tam;
struct timeval t_ini, t_fin;
double secs, media, suma=0.0;
sscanf (argv[1], "%d", &tam);
mat1=malloc(sizeof(double)*tam*tam);
mat2=malloc(sizeof(double)*tam*tam);
sol=malloc(sizeof(double)*tam*tam);
for(i=0; i
#include
#include
#include
#include
#define MAX 100
double timeval_diff(struct timeval *a, struct timeval *b)
{
return
(double)(a->tv_sec + (double)a->tv_usec/1000000) -
(double)(b->tv_sec + (double)b->tv_usec/1000000);
}
int main(int argc, char **argv)
{
int i,j;
double *mat1, *mat2, *sol;
int tam;
struct timeval t_ini, t_fin;
double secs, media, suma=0.0;
sscanf (argv[1], "%d", &tam);
mat1=malloc(sizeof(double)*tam*tam);
mat2=malloc(sizeof(double)*tam*tam);
sol=malloc(sizeof(double)*tam*tam);
for(i=0; i