Workload — Carga de trabajo
El nombre de la prueba. Cada una aísla una parte distinta del motor: despacho de sentencias, aritmética decimal, lotes de registros, rotación de objetos o el motor INDEXED.
Ops — Operaciones
Cuánto trabajo real se hizo, con la unidad propia de cada carga (por eso cambia de fila en fila): stmt = sentencias COBOL despachadas, call = llamadas a párrafo, compute = sentencias COMPUTE, record = registros escritos o leídos, object = objetos creados y destruidos, read = lecturas por clave. No son iteraciones del bucle, sino unidades de trabajo, para que las columnas siguientes sean comparables entre cargas.
Wall — Tiempo de reloj
El tiempo transcurrido de principio a fin de esa carga, en segundos. Es tiempo real, no tiempo de CPU: si la máquina está ocupada con otra cosa, esta cifra sube.
Ops/sec — Operaciones por segundo
Ops dividido entre Wall. Es la cifra de rendimiento bruto, y la que peor viaja entre máquinas: depende del procesador, de la frecuencia en ese momento y de lo cargado que esté el equipo.
Allocs — Reservas de memoria
Cuántas veces se entró al asignador de memoria durante la carga. Se cuentan exactamente, con un asignador global propio. Es la señal más estable de la tabla: no se mueve con la carga de la máquina, así que si esta cifra cambia entre dos versiones, ha cambiado el código de verdad.
Allocs/op — Reservas por operación
Allocs dividido entre Ops. La columna más útil de todas: dice cuánta memoria pide el motor por cada unidad de trabajo. Debería salir prácticamente idéntica en cualquier máquina y sistema operativo, porque no depende de la velocidad sino de lo que hace el código. Un 4,00 significa cuatro visitas al asignador por cada sentencia; un 65,06, sesenta y cinco por cada registro.
MB churned — MB movidos
El total de megabytes que pasaron por el asignador durante la carga, se hayan liberado después o no. Mucho movimiento con poco pico (por ejemplo 409,6 MB movidos y 0,0 MB de pico) significa que la carga está reservando y liberando en bucle: memoria que se pide y se devuelve constantemente.
Peak live MB — MB vivos en el pico
El máximo de memoria viva a la vez durante esa carga: la marca de agua más alta. Es lo que la máquina tiene que tener disponible de verdad. Un 0,0 no quiere decir que no se reservara nada, sino que nada se retuvo: se liberaba tan rápido como se pedía.
Record batch va a 572 968 rec/s frente a los 183 612 que publiqué: 3,1× más rápido, y dispatch un 24 % más rápido, en lo que parece el mismo Mac. Una diferencia así en la misma máquina apunta a que mi medición de referencia se tomó con el equipo cargado — la hice justo después de compilar el workspace entero, y probablemente medí contra ruido térmico y de CPU.
Es decir: las cifras de Ops/sec que publiqué en el foro y en docs/BENCHMARKS.md son casi con seguridad pesimistas. Las de reservas siguen siendo correctas.
|