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));
}

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to