8 GiB file, 256 MiB Java heap
LogoRRR 26.8.0 · मापा गया performance
अब पूरी file का Java heap में
समाना ज़रूरी नहीं है।
कई GiB की log file खोलें, बीच या अंत पर जाएँ—Java heap तय सीमा में रहता है। सबसे बड़ी 8 GiB की file को केवल 256 MiB Java heap के साथ test किया गया।
$ open production.log
- file
- 8 GiB
- Java heap सीमा
- 256 MiB
- पहला window
- 155 ms
- बचा हुआ Java heap
- 3.62 MiB
- process PSS
- 159.2 MiB
शुरुआत · बीच · अंत उपलब्ध
सीमित memory में 8 GiB test
शुरुआत, बीच और अंत खोलने के बाद
2 GiB file पर 26.8.0 और 26.2.0 की तुलना
Architecture
पूरी file को memory में रखने से केवल ज़रूरी हिस्सा पढ़ने तक
26.8.0 से पहले बड़ी file का सीधा अर्थ था memory में रखे जाने वाले लाखों अतिरिक्त line objects। out-of-core engine सीमित working set रखता है और माँगे जाने पर source से संबंधित windows पढ़ता है।
2 GiB test file ने लगभग 3.21 GiB Java heap रोके रखा। 4 GiB file पर तीनों प्रकाशित versions ने 4 GiB Java heap खत्म कर दिया।
8 GiB file की शुरुआत, बीच और अंत खोलने के बाद केवल 3.62 MiB Java heap बचा रहा, जबकि heap की सीमा 256 MiB थी।
वही file · वही 4 GiB Java heap
चार LogoRRR generations में एक 2 GiB log
हर value file-specific cache हटाने के बाद सफल हुए तीन runs का median है। नीचे दिया छोटा range सबसे तेज़ और सबसे धीमे मापे गए run को दिखाता है।
| Version | Engine | Ready | बचा हुआ Java heap | Peak PSS | Runs |
|---|---|---|---|---|---|
| 24.4.0 | पूरी तरह memory में | 7.66 s | 3.08 GiB | 4.19 GiB | 3 |
| 25.2.0 | पूरी तरह memory में | 8.41 s | 3.21 GiB | 4.21 GiB | 3 |
| 26.2.0 | पूरी तरह memory में | 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 |
उपयोगी data 69 गुना जल्दी मिला और बचा हुआ Java heap 918 गुना कम रहा। यह 2 GiB test file पर 26.8.0 और test में शामिल सबसे नए प्रकाशित version 26.2.0 की तुलना है।
पुरानी memory सीमा
प्रकाशित versions 4 GiB पर Java heap खत्म कर देते हैं; 26.8.0 आगे चलता है
4 GiB Java heap के साथ सभी versions ने 2 GiB test पास किया। 4 GiB file पर पूरा data memory में रखने वाले हर engine ने heap खत्म कर दिया। नए engine ने 4 GiB और 8 GiB दोनों tests पास किए।
| File | 24.4.0 | 25.2.0 | 26.2.0 | 26.8.0 |
|---|---|---|---|---|
| 500 MiB | ✓ पास | ✓ पास | ✓ पास | ✓ पास |
| 1 GiB | ✓ पास | ✓ पास | ✓ पास | ✓ पास |
| 2 GiB | ✓ पास | ✓ पास | ✓ पास | ✓ पास |
| 4 GiB | × Java heap खत्म | × Java heap खत्म | × Java heap खत्म | ✓ पास |
| 8 GiB | — दोबारा नहीं चलाया | — दोबारा नहीं चलाया | — दोबारा नहीं चलाया | ✓ पास |
किसी version के Java heap खत्म करने के बाद बड़ी files को उसी failure को दोहराने के बजाय “दोबारा नहीं चलाया” माना गया।
सीमित memory test
File आठ गुना बड़ी, memory लगभग उतनी ही
LogoRRR 26.8.0 को 256 MiB Java heap सीमा के साथ चलाया गया। File 1 GiB से बढ़कर 8 GiB हुई, फिर भी बचा हुआ Java heap लगभग 3.6 MiB और पूरे process का PSS लगभग 159 MiB रहा।
- शुरुआत
- 152 ms
- बीच
- 13 ms
- अंत
- 6 ms
- Java heap
- 3.56 MiB
- PSS
- 157.3 MiB
- शुरुआत
- 146 ms
- बीच
- 13 ms
- अंत
- 7 ms
- Java heap
- 3.58 MiB
- PSS
- 160.0 MiB
- शुरुआत
- 146 ms
- बीच
- 14 ms
- अंत
- 9 ms
- Java heap
- 3.59 MiB
- PSS
- 158.9 MiB
- शुरुआत
- 155 ms
- बीच
- 18 ms
- अंत
- 12 ms
- Java heap
- 3.62 MiB
- PSS
- 159.2 MiB
हर value तीन runs का median है। नीचे की methodology table में हर window का मापा गया range दिया गया है।
अब असली सीमा
रफ़्तार storage तय करता है, file size के अनुपात में memory नहीं
पहला window लौटाने के लिए अब पूरा source पढ़ना ज़रूरी नहीं है। जिन operations को हर byte देखना पड़ता है, वे अब भी drive और file system की गति पर निर्भर हैं।
500 MiB file पर अलग exact-search test में पहला match 3.38 s में मिला। पूरी file cover करने में 34.8 s लगे और throughput 14.4 MiB/s रहा।
तरीका और data source
दोहराए जा सकने वाले माप, जानबूझकर रखी गई सावधान सीमाएँ
Test हर build का असली loader code और पहले से बनाई गई deterministic, non-sparse files इस्तेमाल करता है। हर run अलग JVM में चलता है और process memory के आँकड़े operating system से लिए जाते हैं।
नियंत्रित input
तय चौड़ाई वाली deterministic UTF-8 log lines, जिन्हें मापने से पहले non-sparse files में बनाया गया।
Cold-file policy
हर run से पहले test file का operating-system cache हटाया जाता है; global cache साफ़ नहीं किया जाता।
Process memory
बचा हुआ Java heap garbage collection के बाद मापा जाता है। Peak proportional set size (PSS) यहाँ से पढ़ा जाता है: /proc/<pid>/smaps_rollup.
दो test series
4 GiB Java heap वाली series सभी versions को उनके failure point तक compare करती है। दूसरी series 26.8.0 को 256 MiB तक सीमित करके 1, 2, 4 और 8 GiB files पर test करती है।
| File | पहला window | बीच | अंत | बचा हुआ Java heap | Peak 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 |
Environment
Ubuntu 24.04.4 LTS, aarch64, 8 logical CPUs, openjdk version "25.0.2" 2026-01-20.
Builds
- 24.4.0 — प्रकाशित 2024-06-06, asset
logorrr_24.4.0_arm64.deb, SHA-25627a4aea231dc78ba4b3838cc57361728bc714926f9270731bd7637eba8dda065 - 25.2.0 — प्रकाशित 2025-12-23, asset
logorrr_25.2.0_arm64.deb, SHA-256f8de52dccb4224a25b0689aaef9d64618e98102d7134e637b249d1830c516fb1 - 26.2.0 — प्रकाशित 2026-03-03, asset
logorrr_26.2.0_arm64.deb, SHA-256cfec5dd09753ba90167199aa5d94f388448fc518f7629bf598b7debb01489cca - 26.8.0 — release पूरा होने से पहले का source snapshot
f5e31853, 26.8.0 के रूप में build और measure किया गया
Evidence identity
Comparison SHA-256: 7de25d018ba40d51504ccd265f03a5ef8167bd9ae52d543e66880444d5223024
Stress-test SHA-256: 7f480db156fd24d6fa3d6946ea24c003ae8dd54abff5a3621c646aff2b58281e
ये नतीजे इसी test file, machine और protocol के हैं—हर drive या workload के नहीं। “Storage-bound” का अर्थ है कि test की गई अधिकतम file size अब बचे हुए Java heap के अनुपात में नहीं है; पूरा source पढ़ने वाले काम अब भी storage throughput पर निर्भर हैं। सबसे बड़ी test file: 8 GiB।
LogoRRR Pro
वह log खोलें जो पहले बहुत बड़ा था
पूरी file का access LogoRRR Pro में मिलता है। Free preview जानबूझकर सीमित रखा गया है, ताकि बड़ी files unlock करने से पहले आप workflow जाँच सकें।