archivo de 8 GiB, Java heap de 256 MiB
LogoRRR 26.8.0 · rendimiento medido
El archivo ya no tiene que
caber en la Java heap.
Abre un registro de varios GiB, ve al centro o salta al final: la Java heap se mantiene acotada. El archivo más grande de la prueba fue de 8 GiB con una Java heap limitada a 256 MiB.
$ open production.log
- archivo
- 8 GiB
- límite de Java heap
- 256 MiB
- primera ventana
- 155 ms
- Java heap retenida
- 3.62 MiB
- PSS del proceso
- 159.2 MiB
inicio · centro · final disponibles
prueba de 8 GiB con memoria limitada
tras consultar el inicio, el centro y el final
26.8.0 frente a 26.2.0 con el archivo de 2 GiB
Arquitectura
De guardar todo en memoria a leer solo lo necesario
Antes de 26.8.0, un archivo mayor implicaba directamente millones de objetos de línea retenidos. El motor out-of-core mantiene un conjunto de trabajo acotado y lee de la fuente las ventanas que se solicitan.
El archivo de prueba de 2 GiB retuvo unos 3,21 GiB de Java heap. Con un archivo de 4 GiB, las tres versiones publicadas agotaron una Java heap de 4 GiB.
Después de consultar el inicio, el centro y el final del archivo de 8 GiB, solo permanecían retenidos 3.62 MiB de Java heap, aun con el límite fijado en 256 MiB.
Mismo archivo · misma Java heap de 4 GiB
Un registro de 2 GiB en cuatro generaciones de LogoRRR
Cada valor es la mediana de tres ejecuciones correctas tras desalojar la caché específica del archivo. El intervalo pequeño muestra la ejecución más rápida y la más lenta medidas.
| Versión | Motor | Listo | Java heap retenida | Pico de PSS | Ejecuciones |
|---|---|---|---|---|---|
| 24.4.0 | residente | 7.66 s | 3.08 GiB | 4.19 GiB | 3 |
| 25.2.0 | residente | 8.41 s | 3.21 GiB | 4.21 GiB | 3 |
| 26.2.0 | residente | 9.89 s | 3.21 GiB | 4.21 GiB | 3 |
| 26.8.0 | out-of-core | 144 ms | 3.58 MiB | 159.2 MiB | 3 |
Datos útiles 69 veces antes, con 918 veces menos Java heap retenida. La comparación enfrenta 26.8.0 con la versión publicada más reciente de la prueba, 26.2.0, usando el archivo de 2 GiB.
El antiguo límite de memoria
Las versiones publicadas agotan la Java heap con 4 GiB; 26.8.0 continúa
Con 4 GiB de Java heap, todas las versiones superaron la prueba de 2 GiB. Al llegar a un archivo de 4 GiB, todos los motores residentes agotaron esa memoria. El motor nuevo superó tanto la prueba de 4 GiB como la de 8 GiB.
| Archivo | 24.4.0 | 25.2.0 | 26.2.0 | 26.8.0 |
|---|---|---|---|---|
| 500 MiB | ✓ Superada | ✓ Superada | ✓ Superada | ✓ Superada |
| 1 GiB | ✓ Superada | ✓ Superada | ✓ Superada | ✓ Superada |
| 2 GiB | ✓ Superada | ✓ Superada | ✓ Superada | ✓ Superada |
| 4 GiB | × Java heap agotada | × Java heap agotada | × Java heap agotada | ✓ Superada |
| 8 GiB | — No repetida | — No repetida | — No repetida | ✓ Superada |
Cuando una versión agotaba su Java heap, los archivos mayores se marcaban como «no repetida» en lugar de reproducir el mismo fallo.
Prueba con memoria limitada
Un archivo ocho veces mayor, con un uso de memoria casi constante
LogoRRR 26.8.0 se ejecutó con una Java heap limitada a 256 MiB. Al crecer el archivo de 1 GiB a 8 GiB, la Java heap retenida se mantuvo cerca de 3,6 MiB y la PSS total del proceso alrededor de 159 MiB.
- inicio
- 152 ms
- centro
- 13 ms
- final
- 6 ms
- Java heap
- 3.56 MiB
- PSS
- 157.3 MiB
- inicio
- 146 ms
- centro
- 13 ms
- final
- 7 ms
- Java heap
- 3.58 MiB
- PSS
- 160.0 MiB
- inicio
- 146 ms
- centro
- 14 ms
- final
- 9 ms
- Java heap
- 3.59 MiB
- PSS
- 158.9 MiB
- inicio
- 155 ms
- centro
- 18 ms
- final
- 12 ms
- Java heap
- 3.62 MiB
- PSS
- 159.2 MiB
Cada valor es la mediana de tres ejecuciones. La tabla de metodología inferior incluye los intervalos medidos para cada ventana.
La limitación práctica actual
El almacenamiento marca el ritmo, no una memoria proporcional al archivo
La primera ventana puede devolverse sin leer toda la fuente. Las operaciones que deben examinar cada byte siguen dependiendo de la unidad y del sistema de archivos.
En otra prueba de búsqueda exacta sobre un archivo de 500 MiB, la primera coincidencia apareció tras 3.38 s. La cobertura completa tardó 34.8 s a 14.4 MiB/s.
Método y procedencia
Mediciones reproducibles con límites deliberadamente prudentes
La prueba ejecuta el código real del cargador de cada compilación sobre archivos deterministas no dispersos. Cada ejecución usa una JVM independiente y la memoria del proceso se obtiene del sistema operativo.
Entrada controlada
Líneas de registro UTF-8 deterministas y de ancho fijo, guardadas en archivos no dispersos creados antes de medir.
Política de archivo en frío
Antes de cada ejecución se desaloja la caché del sistema operativo correspondiente al archivo; no se purga la caché global.
Memoria del proceso
La Java heap retenida se toma después de la recolección de basura. El máximo de tamaño proporcional (PSS) se lee de /proc/<pid>/smaps_rollup.
Dos series de pruebas
Una Java heap de 4 GiB compara todas las versiones hasta su punto de fallo. Otra serie limita 26.8.0 a 256 MiB y lo prueba con archivos de 1, 2, 4 y 8 GiB.
| Archivo | Primera ventana | Centro | Final | Java heap retenida | Pico de PSS |
|---|---|---|---|---|---|
| 1 GiB | 152 ms 149–159 | 13 ms 12–14 | 6 ms 6–7 | 3.56 MiB | 157.3 MiB |
| 2 GiB | 146 ms 143–146 | 13 ms 12–13 | 7 ms 7–7 | 3.58 MiB | 160.0 MiB |
| 4 GiB | 146 ms 141–153 | 14 ms 13–15 | 9 ms 9–10 | 3.59 MiB | 158.9 MiB |
| 8 GiB | 155 ms 153–157 | 18 ms 15–18 | 12 ms 12–12 | 3.62 MiB | 159.2 MiB |
Entorno
Ubuntu 24.04.4 LTS, aarch64, 8 logical CPUs, openjdk version "25.0.2" 2026-01-20.
Compilaciones
- 24.4.0 — publicada el 2024-06-06, artefacto
logorrr_24.4.0_arm64.deb, SHA-25627a4aea231dc78ba4b3838cc57361728bc714926f9270731bd7637eba8dda065 - 25.2.0 — publicada el 2025-12-23, artefacto
logorrr_25.2.0_arm64.deb, SHA-256f8de52dccb4224a25b0689aaef9d64618e98102d7134e637b249d1830c516fb1 - 26.2.0 — publicada el 2026-03-03, artefacto
logorrr_26.2.0_arm64.deb, SHA-256cfec5dd09753ba90167199aa5d94f388448fc518f7629bf598b7debb01489cca - 26.8.0 — instantánea del código en la fase final de la versión
f5e31853, compilada y medida como 26.8.0
Identidad de los datos
SHA-256 de la comparación: 7de25d018ba40d51504ccd265f03a5ef8167bd9ae52d543e66880444d5223024
SHA-256 de la prueba de carga: 7f480db156fd24d6fa3d6946ea24c003ae8dd54abff5a3621c646aff2b58281e
Estos resultados describen este archivo, esta máquina y este protocolo, no todas las unidades ni todas las cargas. «Limitado por el almacenamiento» significa que el máximo tamaño probado ya no es proporcional a la Java heap retenida; las operaciones sobre toda la fuente siguen dependiendo del rendimiento del almacenamiento. Mayor archivo probado: 8 GiB.
LogoRRR Pro
Abre el registro que antes era demasiado grande
El acceso al archivo completo forma parte de LogoRRR Pro. La vista previa gratuita mantiene un límite intencionado para que puedas evaluar el flujo de trabajo antes de desbloquear los archivos grandes.