Ed_Bunker
13-02-2005, 04:21
Ciao, vorrei sapere se, volendo calcolare il tempo necessario per effettuare una fork() e' indifferente far terminare subito il figlio nato dalla fork o no.
Ovvero: questi 2 modi di calcolare il tempo di fork si "equivalgono" ?
Modo 1:
int pid;
long int forkTime;
struct timeval * start = (struct timeval*) malloc(sizeof(struct timeval));
struct timeval * end = (struct timeval*) malloc(sizeof(struct timeval));
gettimeofday(start, NULL);
pid = fork();/*Ometto il controllo sull'errore per brevita'...*/
if (pid == 0)
exit(EXIT_SUCCESS);
/*Qui arriva solo il padre*/
gettimeofday(end, NULL);
forkTime = (end->tv_sec - start->tv_sec) * 1000000 + (end->tv_usec - start->tv_usec);
/*Tempo in microsecondi/*
free(start);
free(end);
Modo 2:
int pid;
long int forkTime;
struct timeval * start = (struct timeval*) malloc(sizeof(struct timeval));
struct timeval * end = (struct timeval*) malloc(sizeof(struct timeval));
gettimeofday(start, NULL);
pid = fork();/*Ometto il controllo sull'errore per brevita'...*/
if (pid == 0)
{
/*Qua faccio qualcosa*/
/*Ad esempio...*-/
int i = 0;
while(i < 300)
{
printf("Child> nel ciclo");
i++;
}
exit(EXIT_SUCCESS);
}
/*Qui arriva solo il padre*/
gettimeofday(end, NULL);
forkTime = (end->tv_sec - start->tv_sec) * 1000000 + (end->tv_usec - start->tv_usec);
/*Tempo in microsecondi/*
free(start);
free(end);
Grazie !
Ovvero: questi 2 modi di calcolare il tempo di fork si "equivalgono" ?
Modo 1:
int pid;
long int forkTime;
struct timeval * start = (struct timeval*) malloc(sizeof(struct timeval));
struct timeval * end = (struct timeval*) malloc(sizeof(struct timeval));
gettimeofday(start, NULL);
pid = fork();/*Ometto il controllo sull'errore per brevita'...*/
if (pid == 0)
exit(EXIT_SUCCESS);
/*Qui arriva solo il padre*/
gettimeofday(end, NULL);
forkTime = (end->tv_sec - start->tv_sec) * 1000000 + (end->tv_usec - start->tv_usec);
/*Tempo in microsecondi/*
free(start);
free(end);
Modo 2:
int pid;
long int forkTime;
struct timeval * start = (struct timeval*) malloc(sizeof(struct timeval));
struct timeval * end = (struct timeval*) malloc(sizeof(struct timeval));
gettimeofday(start, NULL);
pid = fork();/*Ometto il controllo sull'errore per brevita'...*/
if (pid == 0)
{
/*Qua faccio qualcosa*/
/*Ad esempio...*-/
int i = 0;
while(i < 300)
{
printf("Child> nel ciclo");
i++;
}
exit(EXIT_SUCCESS);
}
/*Qui arriva solo il padre*/
gettimeofday(end, NULL);
forkTime = (end->tv_sec - start->tv_sec) * 1000000 + (end->tv_usec - start->tv_usec);
/*Tempo in microsecondi/*
free(start);
free(end);
Grazie !