Make process title - % complete
Ivan Voras
ivoras at freebsd.org
Tue Oct 20 12:42:55 UTC 2009
Alex Kozlov wrote:
> Of course ps or top output much more convenient, but if setproctitle so
> expencive and will be called so often, then SIGINFO may be good
> compromise.
Regarding speed of setproctitle(), here are some microbenchmark results
from the attached test source:
getpid: 3661124.75 iterations/s
setproctitle: 591357.56 iterations/s
Meaning, setprocitle() is around 6 times more expensive than getpid(),
meaning it can only be pulled off nearly 600,000 calls/s on a 2.3 GHz
Core 2 CPU.
I really want to be enlightened about how it could affect wallclock time
in make(1).
----
#include <sys/time.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#define NITER 1e7
double now() {
struct timeval tp;
gettimeofday(&tp, NULL);
return tp.tv_sec + (double)tp.tv_usec / 1e6f;
}
int main() {
double t1, t2, t3;
int i;
t1 = now();
for (i = 0; i < NITER; i++)
getpid();
t2 = now() - t1;
printf("getpid: %0.2f iterations/s\n", (float)(NITER/t2));
t1 = now();
for (i = 0; i < NITER; i++)
setproctitle("t%d", i);
t3 = now() - t1;
printf("setproctitle: %0.2f iterations/s\n", (float)(NITER/t3));
}
More information about the freebsd-hackers
mailing list