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>
