lat_proc - process creation tests
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.