ficheiro de 8 GiB, Java heap de 256 MiB
LogoRRR 26.8.0 · desempenho medido
O ficheiro já não tem de
caber na Java heap.
Abra um registo de vários GiB, avance para o meio ou salte para o fim: a Java heap permanece limitada. O maior ficheiro testado tinha 8 GiB, com apenas 256 MiB de Java heap.
$ open production.log
- ficheiro
- 8 GiB
- limite da Java heap
- 256 MiB
- primeira janela
- 155 ms
- Java heap retida
- 3.62 MiB
- PSS do processo
- 159.2 MiB
início · meio · fim disponíveis
teste de 8 GiB com memória limitada
depois de aceder ao início, meio e fim
26.8.0 face a 26.2.0 no ficheiro de 2 GiB
Arquitetura
Do ficheiro inteiro em memória à leitura apenas do necessário
Antes da 26.8.0, ficheiros maiores criavam diretamente milhões de objetos de linha retidos. O motor out-of-core mantém um conjunto de trabalho limitado e lê da origem as janelas pedidas.
O ficheiro de teste de 2 GiB reteve cerca de 3,21 GiB de Java heap. Com um ficheiro de 4 GiB, as três versões publicadas esgotaram uma Java heap de 4 GiB.
Depois de aceder ao início, meio e fim do ficheiro de 8 GiB, apenas 3.62 MiB de Java heap continuavam retidos, mesmo com o limite definido em 256 MiB.
Mesmo ficheiro · mesma Java heap de 4 GiB
Um registo de 2 GiB em quatro gerações do LogoRRR
Cada valor é a mediana de três execuções bem-sucedidas depois de removida a cache específica do ficheiro. O intervalo menor mostra a execução mais rápida e a mais lenta medidas.
| Versão | Motor | Pronto | Java heap retida | Pico de PSS | Execuções |
|---|---|---|---|---|---|
| 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 |
Dados utilizáveis 69 vezes mais depressa, com uma Java heap retida 918 vezes menor. A comparação usa o ficheiro de 2 GiB e confronta a 26.8.0 com a versão publicada mais recente do teste, a 26.2.0.
O antigo limite de memória
As versões publicadas esgotam a Java heap nos 4 GiB; a 26.8.0 continua
Com 4 GiB de Java heap, todas as versões passaram no teste de 2 GiB. Ao chegar ao ficheiro de 4 GiB, todos os motores residentes esgotaram essa memória. O novo motor passou nos testes de 4 GiB e 8 GiB.
| Ficheiro | 24.4.0 | 25.2.0 | 26.2.0 | 26.8.0 |
|---|---|---|---|---|
| 500 MiB | ✓ Aprovado | ✓ Aprovado | ✓ Aprovado | ✓ Aprovado |
| 1 GiB | ✓ Aprovado | ✓ Aprovado | ✓ Aprovado | ✓ Aprovado |
| 2 GiB | ✓ Aprovado | ✓ Aprovado | ✓ Aprovado | ✓ Aprovado |
| 4 GiB | × Java heap esgotada | × Java heap esgotada | × Java heap esgotada | ✓ Aprovado |
| 8 GiB | — Não repetido | — Não repetido | — Não repetido | ✓ Aprovado |
Depois de uma versão esgotar a Java heap, os ficheiros maiores eram marcados como «não repetido» em vez de reproduzir a mesma falha.
Teste com memória limitada
Ficheiro oito vezes maior, memória praticamente estável
O LogoRRR 26.8.0 foi executado com uma Java heap limitada a 256 MiB. Enquanto o ficheiro cresceu de 1 GiB para 8 GiB, a Java heap retida manteve-se perto de 3,6 MiB e a PSS total do processo perto de 159 MiB.
- início
- 152 ms
- meio
- 13 ms
- fim
- 6 ms
- Java heap
- 3.56 MiB
- PSS
- 157.3 MiB
- início
- 146 ms
- meio
- 13 ms
- fim
- 7 ms
- Java heap
- 3.58 MiB
- PSS
- 160.0 MiB
- início
- 146 ms
- meio
- 14 ms
- fim
- 9 ms
- Java heap
- 3.59 MiB
- PSS
- 158.9 MiB
- início
- 155 ms
- meio
- 18 ms
- fim
- 12 ms
- Java heap
- 3.62 MiB
- PSS
- 159.2 MiB
Cada valor é a mediana de três execuções. A tabela de metodologia abaixo apresenta os intervalos medidos de cada janela.
A limitação prática atual
O armazenamento dita o ritmo, não uma memória proporcional ao ficheiro
A primeira janela pode ser devolvida sem ler toda a origem. As operações que têm de examinar cada byte continuam dependentes da unidade e do sistema de ficheiros.
Noutro teste de pesquisa exata com um ficheiro de 500 MiB, o primeiro resultado surgiu após 3.38 s. A cobertura completa demorou 34.8 s, a 14.4 MiB/s.
Método e proveniência
Medições reproduzíveis com limites deliberadamente conservadores
O teste executa o código real do carregador de cada build em ficheiros determinísticos não esparsos. Cada execução usa uma JVM separada e os dados de memória do processo vêm do sistema operativo.
Entrada controlada
Linhas de registo UTF-8 determinísticas e de largura fixa, guardadas em ficheiros não esparsos criados antes da medição.
Política de ficheiro frio
A cache do sistema operativo específica do ficheiro é removida antes de cada execução; a cache global não é limpa.
Memória do processo
A Java heap retida é medida após a recolha de lixo. O pico do tamanho proporcional (PSS) é lido em /proc/<pid>/smaps_rollup.
Duas séries de testes
Uma Java heap de 4 GiB compara todas as versões até ao ponto de falha. Uma série separada limita a 26.8.0 a 256 MiB e testa-a com ficheiros de 1, 2, 4 e 8 GiB.
| Ficheiro | Primeira janela | Meio | Fim | Java heap retida | 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 |
Ambiente
Ubuntu 24.04.4 LTS, aarch64, 8 logical CPUs, openjdk version "25.0.2" 2026-01-20.
Builds
- 24.4.0 — publicada em 2024-06-06, artefacto
logorrr_24.4.0_arm64.deb, SHA-25627a4aea231dc78ba4b3838cc57361728bc714926f9270731bd7637eba8dda065 - 25.2.0 — publicada em 2025-12-23, artefacto
logorrr_25.2.0_arm64.deb, SHA-256f8de52dccb4224a25b0689aaef9d64618e98102d7134e637b249d1830c516fb1 - 26.2.0 — publicada em 2026-03-03, artefacto
logorrr_26.2.0_arm64.deb, SHA-256cfec5dd09753ba90167199aa5d94f388448fc518f7629bf598b7debb01489cca - 26.8.0 — snapshot do código na fase final da versão
f5e31853, compilada e medida como 26.8.0
Identidade dos dados
SHA-256 da comparação: 7de25d018ba40d51504ccd265f03a5ef8167bd9ae52d543e66880444d5223024
SHA-256 do teste de esforço: 7f480db156fd24d6fa3d6946ea24c003ae8dd54abff5a3621c646aff2b58281e
Estes resultados descrevem este ficheiro, esta máquina e este protocolo, não todas as unidades nem todas as cargas de trabalho. «Limitado pelo armazenamento» significa que o maior tamanho testado já não é proporcional à Java heap retida; as operações sobre toda a origem continuam dependentes do débito do armazenamento. Maior ficheiro testado: 8 GiB.
LogoRRR Pro
Abra o registo que antes era demasiado grande
O acesso ao ficheiro completo faz parte do LogoRRR Pro. A pré-visualização gratuita mantém um limite intencional para que possa avaliar o fluxo de trabalho antes de desbloquear ficheiros grandes.