Ciao, vorrei sapere se, volendo calcolare il tempo necessario per effettuare una fork(), e' indifferente far terminare immediatamente o meno il figlio nato dalla fork stessa.
Ovvero: questi 2 modi di calcolare il tempo di fork si "equivalgono" ?
Modo 1:
Modo 2:codice: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);
Grazie !codice: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...*-/ sleep(2); 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);

Rispondi quotando