LogoRRR 26.8.0 · desempenho medido

O arquivo não precisa mais
caber na Java heap.

Abra um log de vários GiB, vá para o meio ou pule para o final: a Java heap permanece limitada. O maior arquivo testado tinha 8 GiB, com apenas 256 MiB de Java heap.

$ open production.log

arquivo
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 · final disponíveis

32×proporção entre arquivo e Java heap

arquivo de 8 GiB, Java heap de 256 MiB

155 msaté a primeira janela utilizável

teste de 8 GiB com memória limitada

3.62 MiBJava heap retida

após acessar início, meio e final

69×mais rápido até os primeiros dados

26.8.0 contra 26.2.0 no arquivo de 2 GiB

Do arquivo inteiro na memória à leitura apenas do necessário

Antes da 26.8.0, arquivos maiores criavam diretamente milhões de objetos de linha retidos. O mecanismo out-of-core mantém um conjunto de trabalho limitado e lê da origem as janelas solicitadas.

Versões publicadas24.4 · 25.2 · 26.2
arquivo de logtodas as linhasJava heap

O arquivo de teste de 2 GiB reteve cerca de 3,21 GiB de Java heap. Com um arquivo de 4 GiB, as três versões publicadas esgotaram uma Java heap de 4 GiB.

LogoRRR26.8.0
arquivo de logjanelas limitadasvisualização

Depois de acessar o início, o meio e o final do arquivo de 8 GiB, apenas 3.62 MiB de Java heap continuavam retidos, mesmo com o limite definido em 256 MiB.

Um log de 2 GiB em quatro gerações do LogoRRR

Cada valor é a mediana de três execuções bem-sucedidas após a remoção do cache específico do arquivo. O intervalo menor mostra a execução mais rápida e a mais lenta medidas.

24.4.0
7.66 s7541–8876 ms
25.2.0
8.41 s8243–8511 ms
26.2.0
9.89 s9863–10607 ms
26.8.0
144 ms143–150 ms
Comparação controlada de 2 GiB com Java heap máxima de 4 GiB
VersãoMecanismoProntoJava heap retidaPico de PSSExecuções
24.4.0residente7.66 s3.08 GiB4.19 GiB3
25.2.0residente8.41 s3.21 GiB4.21 GiB3
26.2.0residente9.89 s3.21 GiB4.21 GiB3
26.8.0out-of-core144 ms3.58 MiB159.2 MiB3

Dados utilizáveis 69 vezes mais rápido, com uma Java heap retida 918 vezes menor. A comparação usa o arquivo de 2 GiB e coloca a 26.8.0 diante da versão publicada mais recente do teste, a 26.2.0.

As versões publicadas esgotam a Java heap em 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 arquivo de 4 GiB, todos os mecanismos residentes esgotaram essa memória. O novo mecanismo passou nos testes de 4 GiB e 8 GiB.

Comparação controlada por tamanho de arquivo; três execuções para cada célula aprovada
Arquivo24.4.025.2.026.2.026.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 que uma versão esgotava a Java heap, os arquivos maiores eram marcados como “não repetido” em vez de reproduzir a mesma falha.

Arquivo 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 arquivo cresceu de 1 GiB para 8 GiB, a Java heap retida ficou perto de 3,6 MiB e o PSS total do processo, perto de 159 MiB.

1 GiB
início
152 ms
meio
13 ms
final
6 ms
Java heap
3.56 MiB
PSS
157.3 MiB
2 GiB
início
146 ms
meio
13 ms
final
7 ms
Java heap
3.58 MiB
PSS
160.0 MiB
4 GiB
início
146 ms
meio
14 ms
final
9 ms
Java heap
3.59 MiB
PSS
158.9 MiB
8 GiB
início
155 ms
meio
18 ms
final
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 traz os intervalos medidos de cada janela.

O armazenamento dita o ritmo, não uma memória proporcional ao arquivo

A primeira janela pode ser retornada sem ler toda a origem. As operações que precisam examinar cada byte ainda dependem da unidade e do sistema de arquivos.

Em outro teste de busca exata com um arquivo de 500 MiB, o primeiro resultado apareceu após 3.38 s. A cobertura completa levou 34.8 s, a 14.4 MiB/s.

primeiro resultado3.38 s
cobertura completa34.8 s
arquivo determinístico de 500 MiB · mediana de três execuções

Medições reproduzíveis com limites deliberadamente conservadores

O teste executa o código real do carregador de cada build em arquivos determinísticos não esparsos. Cada execução usa uma JVM separada, e os dados de memória do processo vêm do sistema operacional.

01

Entrada controlada

Linhas de log UTF-8 determinísticas e de largura fixa, armazenadas em arquivos não esparsos criados antes da medição.

02

Política de arquivo frio

O cache do sistema operacional específico do arquivo é removido antes de cada execução; o cache global não é limpo.

03

Memória do processo

A Java heap retida é medida após a coleta de lixo. O pico do tamanho proporcional (PSS) é lido em /proc/<pid>/smaps_rollup.

04

Duas séries de testes

Uma Java heap de 4 GiB compara todas as versões até o ponto de falha. Uma série separada limita a 26.8.0 a 256 MiB e a testa com arquivos de 1, 2, 4 e 8 GiB.

LogoRRR 26.8.0 com 256 MiB de Java heap; medianas e intervalos medidos
ArquivoPrimeira janelaMeioFinalJava heap retidaPico de PSS
1 GiB152 ms 149–15913 ms 12–146 ms 6–73.56 MiB157.3 MiB
2 GiB146 ms 143–14613 ms 12–137 ms 7–73.58 MiB160.0 MiB
4 GiB146 ms 141–15314 ms 13–159 ms 9–103.59 MiB158.9 MiB
8 GiB155 ms 153–15718 ms 15–1812 ms 12–123.62 MiB159.2 MiB

Ambiente

Ubuntu 24.04.4 LTS, aarch64, 8 logical CPUs, openjdk version "25.0.2" 2026-01-20.

Builds

  • 24.4.0publicada em 2024-06-06, artefato logorrr_24.4.0_arm64.deb, SHA-256 27a4aea231dc78ba4b3838cc57361728bc714926f9270731bd7637eba8dda065
  • 25.2.0publicada em 2025-12-23, artefato logorrr_25.2.0_arm64.deb, SHA-256 f8de52dccb4224a25b0689aaef9d64618e98102d7134e637b249d1830c516fb1
  • 26.2.0publicada em 2026-03-03, artefato logorrr_26.2.0_arm64.deb, SHA-256 cfec5dd09753ba90167199aa5d94f388448fc518f7629bf598b7debb01489cca
  • 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 estresse: 7f480db156fd24d6fa3d6946ea24c003ae8dd54abff5a3621c646aff2b58281e

Estes resultados descrevem este arquivo, 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 dependendo da taxa de transferência do armazenamento. Maior arquivo testado: 8 GiB.

Abra o log que antes era grande demais

O acesso ao arquivo completo faz parte do LogoRRR Pro. A visualização gratuita permanece intencionalmente limitada para que você avalie o fluxo de trabalho antes de liberar arquivos grandes.

Obter o LogoRRR