ملف 8 GiB وJava heap بسعة 256 MiB
LogoRRR 26.8.0 · أداء مقاس
لم يعد حجم الملف مضطرًا
للتوافق مع سعة Java heap.
افتح سجلًا بحجم عدة GiB وانتقل إلى منتصفه أو نهايته؛ تظل Java heap ضمن حد ثابت. بلغ حجم أكبر ملف اختبرناه 8 GiB مع Java heap محدودة إلى 256 MiB.
$ open production.log
- الملف
- 8 GiB
- حد Java heap
- 256 MiB
- النافذة الأولى
- 155 ms
- Java heap المحتفظ بها
- 3.62 MiB
- PSS للعملية
- 159.2 MiB
البداية · الوسط · النهاية متاحة
اختبار 8 GiB بذاكرة محدودة
بعد فتح البداية والوسط والنهاية
مقارنة 26.8.0 مع 26.2.0 باستخدام ملف 2 GiB
البنية
من وضع الملف كاملًا في الذاكرة إلى قراءة الجزء المطلوب فقط
قبل 26.8.0، كانت زيادة حجم الملف تعني الاحتفاظ مباشرة بملايين كائنات الأسطر الإضافية. يحافظ محرك out-of-core على مجموعة عمل محدودة، ويقرأ نوافذ المصدر عند طلبها.
احتفظ ملف الاختبار بحجم 2 GiB بنحو 3.21 GiB من Java heap. ومع ملف 4 GiB، استنفدت الإصدارات المنشورة الثلاثة Java heap سعتها 4 GiB.
بعد فتح بداية ملف 8 GiB ووسطه ونهايته، لم تتجاوز Java heap المحتفظ بها 3.62 MiB، رغم ضبط حدها على 256 MiB.
الملف نفسه · Java heap نفسها بسعة 4 GiB
سجل واحد بحجم 2 GiB عبر أربعة أجيال من LogoRRR
تمثل كل قيمة وسيط ثلاث عمليات تشغيل ناجحة بعد إخلاء ذاكرة التخزين المؤقت الخاصة بالملف. يعرض النطاق الأصغر أسرع تشغيل مقاس وأبطأه.
| الإصدار | المحرك | جاهز | Java heap المحتفظ بها | ذروة PSS | مرات التشغيل |
|---|---|---|---|---|---|
| 24.4.0 | مقيم كاملًا | 7.66 s | 3.08 GiB | 4.19 GiB | 3 |
| 25.2.0 | مقيم كاملًا | 8.41 s | 3.21 GiB | 4.21 GiB | 3 |
| 26.2.0 | مقيم كاملًا | 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 |
ظهرت البيانات القابلة للاستخدام أسرع بـ 69 مرة، مع Java heap محتفظ بها أقل بـ 918 مرة. تقارن النتيجة 26.8.0 بأحدث إصدار منشور في الاختبار، وهو 26.2.0، باستخدام ملف 2 GiB.
حد الذاكرة السابق
تستنفد الإصدارات المنشورة Java heap عند 4 GiB؛ أما 26.8.0 فيواصل العمل
اجتازت كل الإصدارات اختبار 2 GiB مع Java heap بسعة 4 GiB. وعند اختبار ملف 4 GiB، استنفدت جميع المحركات المقيمة تلك الذاكرة. اجتاز المحرك الجديد اختباري 4 GiB و8 GiB.
| الملف | 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 | — لم يُعَد الاختبار | — لم يُعَد الاختبار | — لم يُعَد الاختبار | ✓ نجح |
بعد أن يستنفد إصدار Java heap، تُوسم الملفات الأكبر بأنها «لم يُعَد الاختبار» بدلًا من تكرار الفشل نفسه.
اختبار بذاكرة محدودة
ملف أكبر بثماني مرات، واستخدام ذاكرة شبه ثابت
شُغّل LogoRRR 26.8.0 بحد 256 MiB لـ Java heap. ومع نمو الملف من 1 GiB إلى 8 GiB، بقيت Java heap المحتفظ بها قرب 3.6 MiB، وإجمالي 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
تمثل كل قيمة وسيط ثلاث عمليات تشغيل. يعرض جدول المنهجية أدناه النطاقات المقاسة لكل نافذة.
القيد العملي الحالي
سرعة التخزين هي التي تحدد الوتيرة، لا ذاكرة تتناسب مع حجم الملف
يمكن إرجاع النافذة الأولى من دون قراءة المصدر كاملًا. لكن العمليات التي يجب أن تفحص كل بايت تظل مرتبطة بسرعة وحدة التخزين ونظام الملفات.
في اختبار منفصل للبحث التام داخل ملف 500 MiB، ظهرت أول مطابقة بعد 3.38 s. استغرقت التغطية الكاملة 34.8 s بمعدل 14.4 MiB/s.
المنهجية ومصدر البيانات
قياسات قابلة للتكرار بحدود محافظة عمدًا
يشغّل الاختبار شيفرة التحميل الفعلية لكل بناء على ملفات حتمية غير sparse. تستخدم كل عملية تشغيل JVM مستقلة، وتأتي قياسات ذاكرة العملية من نظام التشغيل.
مدخلات مضبوطة
أسطر سجل UTF-8 حتمية وثابتة العرض، مخزنة في ملفات غير sparse أُنشئت قبل القياس.
سياسة الملف البارد
تُخلى ذاكرة التخزين المؤقت الخاصة بملف الاختبار في نظام التشغيل قبل كل تشغيل؛ ولا تُمسح الذاكرة المؤقتة العامة.
ذاكرة العملية
تُقاس Java heap المحتفظ بها بعد جمع المهملات. وتُقرأ ذروة الحجم النسبي للمجموعة (PSS) من /proc/<pid>/smaps_rollup.
مساران للاختبار
يقارن مسار بحد 4 GiB لـ Java heap جميع الإصدارات حتى نقطة فشلها. ويحد مسار منفصل 26.8.0 إلى 256 MiB ويختبر ملفات 1 و2 و4 و8 GiB.
| الملف | النافذة الأولى | الوسط | النهاية | Java heap المحتفظ بها | ذروة 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 |
البيئة
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-25627a4aea231dc78ba4b3838cc57361728bc714926f9270731bd7637eba8dda065 - 25.2.0 — نُشر في 2025-12-23, الحزمة
logorrr_25.2.0_arm64.deb, SHA-256f8de52dccb4224a25b0689aaef9d64618e98102d7134e637b249d1830c516fb1 - 26.2.0 — نُشر في 2026-03-03, الحزمة
logorrr_26.2.0_arm64.deb, SHA-256cfec5dd09753ba90167199aa5d94f388448fc518f7629bf598b7debb01489cca - 26.8.0 — لقطة مصدر من مرحلة إغلاق الإصدار
f5e31853, بُني وقيس بوصفه 26.8.0
معرّفات الأدلة
SHA-256 للمقارنة: 7de25d018ba40d51504ccd265f03a5ef8167bd9ae52d543e66880444d5223024
SHA-256 لاختبار الضغط: 7f480db156fd24d6fa3d6946ea24c003ae8dd54abff5a3621c646aff2b58281e
تصف هذه النتائج هذا الملف والجهاز والبروتوكول، ولا تمثل كل وحدة تخزين أو عبء عمل. تعني عبارة «محدود بسرعة التخزين» أن أكبر حجم اختُبر لم يعد متناسبًا مع Java heap المحتفظ بها؛ أما العمليات التي تقرأ المصدر كاملًا فتظل مرتبطة بمعدل نقل التخزين. أكبر ملف اختُبر: 8 GiB.
LogoRRR Pro
افتح السجل الذي كان أكبر من أن يُعالَج سابقًا
الوصول إلى الملف كاملًا إحدى ميزات LogoRRR Pro. تظل المعاينة المجانية محدودة عمدًا، لتجربة سير العمل قبل فتح العمل على الملفات الكبيرة.