Date: Tue, 20 Oct 2009 14:42:17 +0200 From: Ivan Voras <ivoras@freebsd.org> To: freebsd-hackers@freebsd.org Subject: Re: Make process title - % complete Message-ID: <hbkb79$7l2$1@ger.gmane.org> In-Reply-To: <20091020122432.GA50817@ravenloft.kiev.ua> References: <20091020122432.GA50817@ravenloft.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
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)); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?hbkb79$7l2$1>