LogoRRR 26.8.0 · パフォーマンス実測

ファイル全体を Java heap に
収める必要がなくなりました。

数 GiB のログを開き、中央や末尾へ移動しても、Java heap は一定範囲に保たれます。最大 8 GiB のファイルを 256 MiB の Java heap で検証しました。

$ open production.log

ファイル
8 GiB
Java heap 上限
256 MiB
最初のウィンドウ
155 ms
保持 Java heap
3.62 MiB
プロセス PSS
159.2 MiB

先頭 · 中央 · 末尾を表示可能

32×ファイルと Java heap の比率

8 GiB のファイル、256 MiB の Java heap

155 ms最初のデータ表示まで

メモリを制限した 8 GiB テスト

3.62 MiB保持 Java heap

先頭・中央・末尾の表示後

69×データ表示までの高速化

2 GiB のデータで 26.8.0 と 26.2.0 を比較

ファイル全体の常駐から、必要な範囲だけを読む方式へ

26.8.0 より前は、ファイルが大きくなるほど保持する行オブジェクトも数百万単位で増えていました。out-of-core エンジンは作業データを一定量に保ち、要求された範囲をその都度読み込みます。

公開済みバージョン24.4 · 25.2 · 26.2
ログファイル全行Java heap

2 GiB のデータでは約 3.21 GiB の Java heap が保持されました。4 GiB のデータでは、公開済みの 3 バージョンすべてが 4 GiB の Java heap を使い切りました。

LogoRRR26.8.0
ログファイル必要な範囲表示

8 GiB のデータで先頭・中央・末尾を表示した後も、保持された Java heap は 3.62 MiB でした。Java heap の上限は 256 MiB です。

2 GiB のログを 4 世代の LogoRRR で比較

各値は、ファイル固有のキャッシュを退避してから成功した 3 回の中央値です。小さく表示した範囲は、実測の最小値と最大値を示します。

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
Java heap の上限を 4 GiB とした 2 GiB データの比較
バージョンエンジン表示可能保持 Java heap最大 PSS実行回数
24.4.0全体を常駐7.66 s3.08 GiB4.19 GiB3
25.2.0全体を常駐8.41 s3.21 GiB4.21 GiB3
26.2.0全体を常駐9.89 s3.21 GiB4.21 GiB3
26.8.0out-of-core144 ms3.58 MiB159.2 MiB3

データ表示まで 69 倍高速、保持 Java heap は 918 分の 1。 2 GiB のデータを使い、26.8.0 と比較対象で最も新しい公開版 26.2.0 を比べた結果です。

公開済みバージョンは 4 GiB で Java heap が枯渇。26.8.0 はその先へ

4 GiB の Java heap では、すべてのバージョンが 2 GiB のテストに合格しました。データを 4 GiB にすると、全体を常駐させるエンジンはすべて heap を使い切りました。新しいエンジンは 4 GiB と 8 GiB の両方に合格しています。

データサイズ別の比較。合格した各条件を 3 回実行
ファイル24.4.025.2.026.2.026.8.0
500 MiB 合格 合格 合格 合格
1 GiB 合格 合格 合格 合格
2 GiB 合格 合格 合格 合格
4 GiB Java heap 枯渇 Java heap 枯渇 Java heap 枯渇 合格
8 GiB 再実行なし 再実行なし 再実行なし 合格

Java heap が一度枯渇したバージョンでは、同じ失敗を繰り返さず、さらに大きなデータを「再実行なし」としました。

ファイルは 8 倍、メモリ使用量はほぼ一定

LogoRRR 26.8.0 の Java heap を 256 MiB に制限しました。ファイルを 1 GiB から 8 GiB へ増やしても、保持 Java heap は約 3.6 MiB、プロセス全体の PSS は約 159 MiB のままでした。

1 GiB
先頭
152 ms
中央
13 ms
末尾
6 ms
Java heap
3.56 MiB
PSS
157.3 MiB
2 GiB
先頭
146 ms
中央
13 ms
末尾
7 ms
Java heap
3.58 MiB
PSS
160.0 MiB
4 GiB
先頭
146 ms
中央
14 ms
末尾
9 ms
Java heap
3.59 MiB
PSS
158.9 MiB
8 GiB
先頭
155 ms
中央
18 ms
末尾
12 ms
Java heap
3.62 MiB
PSS
159.2 MiB

各値は 3 回の中央値です。各ウィンドウの実測範囲は、下の方法表に掲載しています。

ファイルサイズに比例するメモリではなく、ストレージ速度が処理時間を決める

最初の範囲を返すために、ソース全体を読む必要はありません。一方、全バイトを確認する処理時間は、引き続きドライブとファイルシステムに左右されます。

別途行った 500 MiB データの完全一致検索では、最初の一致を 3.38 s で取得しました。全体の走査には 34.8 s かかり、スループットは 14.4 MiB/s でした。

最初の一致3.38 s
全体の走査34.8 s
500 MiB の決定的データ · 3 回の中央値

再現可能で、条件を控えめに定めた測定

各ビルドの実際のローダーコードと、決定的に生成した非スパースファイルを使用しました。実行ごとに別の JVM を起動し、プロセスメモリは OS の値を計測しています。

01

管理された入力

固定幅の決定的な UTF-8 ログ行を使用し、測定前に非スパースファイルとして生成しました。

02

コールドファイル条件

実行前に対象ファイルの OS キャッシュを退避します。システム全体のキャッシュは消去しません。

03

プロセスメモリ

保持 Java heap はガベージコレクション後に採取します。最大 proportional set size(PSS)は次のファイルから取得します: /proc/<pid>/smaps_rollup.

04

2 種類のテスト条件

4 GiB の Java heap で各バージョンを失敗点まで比較します。別の条件では 26.8.0 の heap を 256 MiB に制限し、1、2、4、8 GiB のデータで検証します。

256 MiB の Java heap で動かした LogoRRR 26.8.0。中央値と実測範囲
ファイル先頭中央末尾保持 Java heap最大 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

実行環境

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

ビルド

  • 24.4.0公開日 2024-06-06, アセット logorrr_24.4.0_arm64.deb, SHA-256 27a4aea231dc78ba4b3838cc57361728bc714926f9270731bd7637eba8dda065
  • 25.2.0公開日 2025-12-23, アセット logorrr_25.2.0_arm64.deb, SHA-256 f8de52dccb4224a25b0689aaef9d64618e98102d7134e637b249d1830c516fb1
  • 26.2.0公開日 2026-03-03, アセット logorrr_26.2.0_arm64.deb, SHA-256 cfec5dd09753ba90167199aa5d94f388448fc518f7629bf598b7debb01489cca
  • 26.8.0 — リリース準備中のソーススナップショット f5e31853, 26.8.0 としてビルド・測定

測定データの識別子

比較データ SHA-256: 7de25d018ba40d51504ccd265f03a5ef8167bd9ae52d543e66880444d5223024

負荷テスト SHA-256: 7f480db156fd24d6fa3d6946ea24c003ae8dd54abff5a3621c646aff2b58281e

この結果が示すのは、ここに記載したデータ、マシン、手順での挙動です。すべてのドライブや作業負荷を代表するものではありません。「ストレージ依存」とは、検証したファイルサイズの上限が保持 Java heap に比例しなくなったという意味です。ソース全体を読む処理は、引き続きストレージ速度に左右されます。検証した最大ファイル:8 GiB。

これまで大きすぎたログを開く

ファイル全体へのアクセスは LogoRRR Pro の機能です。無料プレビューには意図的に上限を設けているため、大容量ファイルを扱う機能を解除する前に操作感を確認できます。

LogoRRR を入手