lat_proc [ -P <parallelism> ] [ -W
<warmups> ] [ -N <repetitions> ]
procedure|fork|exec|shell
lat_proc creates processes in three different forms, each
more expensive than the last. The purposes is to measure the time that it
takes to create a basic thread of control.
The forms are listed and described below:
- Process
fork+exit
- The time it takes to split a process into two (nearly) identical copies
and have one exit. This is how new processes are created but is not very
useful since both processes are doing the same thing.
- Process
fork+execve
- The time it takes to create a new process and have that new process run a
new program. This is the inner loop of all shells (command
interpreters).
- Process fork+/bin/sh
-c
- The time it takes to create a new process and have that new process run a
new program by asking the system shell to find that program and run it.
This is how the C library interface called
system is implemented. It is the most
general and the most expensive.
Output is in microseconds per operation like so:
Process fork+exit: 6054 microseconds
Process fork+execve: 11212 microseconds
Process fork+/bin/sh -c: 44346 microseconds
Funding for the development of this tool was provided by Sun
Microsystems Computer Corporation.
Carl Staelin and Larry McVoy
Comments, suggestions, and bug reports are always welcome.