Desea cierta afinidad de procesador (o afinidad de CPU ).
El syscall relevante es sched_setaffinity (2) , pero debe usarlo a través de pthread_set_affinity_np (3) si desea codificar sus puntos de referencia para eso.
El comando relacionado es el conjunto de tareas (1) y puede usarlo en los comandos que desea comparar (o en su shell).
Si es posible, tenga cuidado de que la máquina no se cargue mucho por otras tareas no relacionadas con el punto de referencia.
Alternativamente, use un hipervisor como Xen y arranque su Linux como un SO huésped para ese hipervisor. Luego configure xen
para usar solo un conjunto restringido de núcleos de CPU (no sé los detalles exactos, debe averiguarlo). En Debian (y relacionados) distribuciones, es posible instalar paquetes como xen-linux-system-amd64
, xen-hypervisor-amd64
, xen-utils
etc (estoy usando en Debian / Sid xen-hypervisor-4.5-amd64
, xen-linux-system-4.0.0-1-amd64
, xen-utils-4.5
etc ...).
Puede haber alguna forma de configurar (quizás en el momento de la compilación del núcleo, o pasando argumentos específicos al núcleo a través del cargador Grub) su núcleo Linux para restringir la cantidad de núcleos utilizables.
Por supuesto, es mejor, cuando la evaluación comparativa de algún programa -por ejemplo en un escritorio Linux en PC, para cuidar para evitar tener muchos procesos fuera de funcionamiento (uso ps auxw
, pstree -p
, top
encontrar estos). Al menos, cierre y cierre la mayoría de las aplicaciones interactivas (navegador como Firefox, correo electrónico, editor, IDEs como Eclipse) y mantenga solo un pequeño número de terminales como punto de referencia. Incluso puede realizar una evaluación comparativa en modo por lotes (utilizando batch
o at
para ejecutar las evaluaciones comparativas) mientras ni siquiera ha iniciado sesión (por lo que no tiene ninguna sesión de GUI al estilo Gnome o KDE o Xfce , etc.).