/* bench_pin.c — mismas medidas, PINNEADAS a un cpu, para sacar la cola del scheduler * de en medio y dejar ver el efecto puro. */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include extern char **environ; static inline double now_ns(void){ struct timespec t; clock_gettime(CLOCK_MONOTONIC,&t); return t.tv_sec*1e9+t.tv_nsec; } static int cmpd(const void*a,const void*b){ double x=*(const double*)a,y=*(const double*)b; return (x>y)-(x1?argv[1]:"/bin/true", *dyn=argc>2?argv[2]:"/bin/true", *mus=argc>3?argv[3]:sta; printf("%-46s %9s %9s\n","BENCH (us/op), PINNEADO a 1 cpu","min","mediana"); printf("--- fork vs espacio de direcciones del padre ---\n"); long mbs[]={0,64,256}; for(unsigned k=0;k<3;k++){ grow(mbs[k]); double a[R],b[R]; char n[90]; for(int q=0;q