Mark Farnell wrote: > I have a parallel program, which calls some message passing functions > which block. Then I attempted to use times() (with struct tms) to > time the program. > > the struct tms gives me the "program time" and the "system time" as > well as the child process time (if any). However does it also include > the time spent when my program is blocked (i.e. network time). No. times() measures CPU usage; any time spent idle isn't measured. Ditto for getrusage(). > This is important because although I use gprof to separate the CPU > time spent by my program vs libraries, when I calculate the total time > spent, I really need to include the time spent waiting for message > from network (network time). > > Therefore is times() really appropriate for my purpose? If not, what > other functions can I use instead? (such as gettimeofday?) If you need to measure real time (aka "wall-clock time"), use gettimeofday() or clock_gettime(). -- Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx> - To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html