خمسة عملاء، وعتاد ومزوّدون متطابقون، وأشواط متداخلة كي يُلغى انجراف المزوّدين. المقياس هو الزمن حتى ملف قابل للاستخدام - مُنزَّل، متحقَّق منه، مستخرَج - مقيسًا إلى جانب القرص والمساحة الحرة والذاكرة التي تكلّفك المهمة. كل جدول يسمّي البُنى التي سابقها واليوم الذي قيس فيه. يشمل الأشواط التي لا نفوز بها.
في هذه الصفحة
النسخة المختصرة · قيست في 23 أغسطس 2026 على خط الكود الذي شُحن باسم nzbfast 1.2.2
أحدث الجولات في هذه الصفحة جرت في 23 و24 أغسطس 2026 - أحدثها على بناء الإصدار v1.2.2 نفسه - مقابل أحدث بُنى أربعة عملاء آخرين على عتاد وخطوط ومزوّدين متطابقين: شكلا مهمة من 6.5 إلى 87 GB، ومعدلات خط من 250 Mbit إلى 10 GbE. عبر تلك الجولات لم يكن أي عميل أرخص من nzbfast في المعالج والذاكرة والقرص معًا: كل واحد منها أغلى في اثنين من الثلاثة على الأقل، وأقصى ما وفّره أيّ منها على أي محور واحد كان نحو 2 بالمئة - تعادل إحصائي، ضمن تفاوت ذلك العميل نفسه بين التكرارات - وعلى القرص تحرّك كل واحد منها ضعف البايتات على الأقل مقابل نتيجة مطابقة بايت لبايت. وكما يُشحن، احتفظ nzbfast أيضًا بأقل ذاكرة بين كل عميل قِيس، على كل عيّنة، بمعدل 2.0 إلى 4.5 أضعاف مقابل أقرب منافس.
أيّ سطر يصفك؟
تكتب معظم برامج التنزيل تنزيلك إلى القرص مرتين على الأقل: مرة أثناء تنزيله، ومرة أخرى أثناء فك ضغطه. يؤدي nzbfast المهمة كاملة بمرور واحد، فيكتب نحو نصف البايتات لكل مهمة، ويحتفظ بأقل في الذاكرة أثناء العمل، وينفق ثوانيَ معالج أقل لكل جيجابايت. وهذا حِمل أقل على الجهاز أثناء استخدامك له، ونصف الكتابات لكل مهمة على أقراصك، لنفس الملفات المطابقة بايت لبايت - ولأن كل بايت يعبر القرص مرة واحدة تقريبًا، لا يحتاج قرصك مجاراة خطك إلا مرة واحدة.
لا يفوز nzbfast بكل جدول في هذه الصفحة، والجداول التي يخسرها موجودة تحت الأشواط التي لا نفوز بها - بما في ذلك واحد من الجولة نفسها. ما ثبت في كل جولة قِسناها هو الفاتورة الإجمالية.
المنهجية أولًا
pipelining_requests=8 (يُشحن بـ1، أي بلا أنابيب، والإعداد
يستحق نسبًا مئوية مزدوجة الرقم على المهام الكبيرة)، وحصل NZBGet على
ArticleCache وDirectWrite وDirectUnpack وParQuick، وحصل rustnzb على إعداده
الموثّق. منذ 20 أغسطس 2026 تسابق كل جولة خمسة مزوّدين لا ستة - فعدد
المزوّدين ليس رافعة سرعة على هذه الأجهزة، حيث يمكن لمزوّد واحد وحده بلوغ سقف
الخط، ومجموعة ثابتة تُبقي الجولات قابلة للمقارنة - فرقم بستة مزوّدين في هذه
الصفحة غير قابل للمقارنة المباشرة مع رقم أحدث بخمسة مزوّدين، وكل جدول يذكر أيّهما
شغّل.جولة 23 أغسطس 2026
ستة أذرع على جهاز Apple Silicon بعشرين نواة على خط 1 Gbit: nzbfast بالإعدادات الافتراضية للشحن، والثنائي نفسه مع إيقاف منظّم الاتصالات، وأحدث بُنى العملاء الأربعة الآخرين. خمسة مزوّدين، وTLS في كل مكان، وثلاث تكرارات لكل عميل لكل عيّنة مع تدوير الترتيب داخل كل جولة، وناتج كل شوط مُتحقَّق منه بايت لبايت: 36 من 36 شوطًا أنتجت الحمولة الدقيقة نفسها. عند 1 Gbit يضبط الخط الإيقاع وتتقارب أزمنة الإنهاء بالتصميم، فعمود الزمن هنا ليُظهر ذلك التقارب؛ أعمدة الموارد هي ما وُجدت الجولة لقياسه.
مقياس واحد يهمّ، ونذكره بدل أن ندفنه: تشمل الإعدادات الافتراضية للشحن الآن منظّم اتصالات واعيًا بالخط، وعلى هذا الخط أبقى 25 اتصالًا بينما شغّل كل عميل آخر مئاته المضبوطة. صف "المنظّم متوقف" يضبط الـ360 مقبسًا نفسها التي استخدمتها جولاتنا الأقدم، فتبقى المقارنتان متاحتين: المنتج كما يستخدمه القارئ، والتجربة التاريخية.
| إصدار مسمّى بحجم 6.5 GB، مع استخراج في المسار | الزمن حتى ملف قابل للاستخدام | ذروة الذاكرة (RSS) | زمن المعالج | إدخال/إخراج الجهاز (GiB) | السلك (GB) |
|---|---|---|---|---|---|
| nzbfast، كما يُشحن (25 اتصالًا) | 58 s | 143 MB | 35.7 s | 6.2 | 6.5 |
| nzbfast، المنظّم متوقف (360) | 60 s | 583 MB | 38.0 s | 6.1 | 6.6 |
| NZBGet 26.3-testing | 61 s | 801 MB | 40.1 s | 12.5 | 6.5 |
| SABnzbd 5.1.1 | 63 s | 1,588 MB | 69.5 s | 13.8 | 6.5 |
| rustnzb 1.4.5 | 67 s | 628 MB | 61.9 s | 13.4 | 7.2 |
| Weaver 0.7.8 | 110 s | 531 MB | 34.9 s¹ | 12.5 | 6.5 |
| إصدار مموَّه بحجم 34 GB | الزمن حتى ملف قابل للاستخدام | ذروة الذاكرة (RSS) | زمن المعالج | إدخال/إخراج الجهاز (GiB) | السلك (GB) |
|---|---|---|---|---|---|
| nzbfast، كما يُشحن (25 اتصالًا) | 302 s | 191 MB | 194.0 s | 32.5 | 34.4 |
| nzbfast، المنظّم متوقف (360) | 302 s | 465 MB | 205.4 s | 32.9 | 34.4 |
| NZBGet 26.3-testing | 306 s | 900 MB | 221.3 s | 68.1 | 34.4 |
| SABnzbd 5.1.1 | 308 s | 1,607 MB | 356.5 s | 72.5 | 34.4 |
| rustnzb 1.4.5 | 343 s | 445 MB | 332.6 s | 69.8 | 37.8 |
| Weaver 0.7.8 | 511 s | 1,076 MB | 373.8 s | 98.0 | 34.4 |
قيست في 23 أغسطس 2026 مقابل SABnzbd 5.1.1، وNZBGet 26.3-testing، وrustnzb 1.4.5، وWeaver 0.7.8، أوساط ثلاث تكرارات مع تحقق من كل شوط بايت لبايت، خمسة مزوّدين، وTLS بالكامل. عملت أذرع nzbfast ببناء من خط الكود نفسه أُخذ في وقت أبكر من ذلك اليوم، نحو سبع ساعات قبل بناء الإصدار v1.2.2، ولذلك لا تحمل صفوفها رقم إصدار؛ أما جدولا 500 Mbit و87 GB في هذه الصفحة فقد عملا فعلًا ببناء الإصدار نفسه ويقولان ذلك. ¹ وسيط معالج Weaver على عيّنة الـ6.5 GB أقل من رقمنا بنسبة 2% (34.9 مقابل 35.7)، مع امتداد أشواطه الثلاثة من 34.1 إلى 56.1 s، فنعدّه تعادلًا إحصائيًا؛ وهو الخلية الوحيدة في أيّ من الجدولين التي يحتفظ بها منافس، وهي مكرَّرة تحت الأشواط التي لا نفوز بها. وعلى عيّنة الـ34 GB معالجنا هو الأدنى مطلقًا. لا يشحن إصدار Weaver الأحدث 0.8.3 أي ثنائي؛ قاس بناؤنا من المصدر له نمط معالج لا يمكننا نسبته بوضوح إلى الإصدار لا إلى البناء، فيسابق هذا الجدول أصل الإصدار 0.7.8 المثبتة هويته بالتجزئة ويصرّح بذلك بدل نشر رقم مُلتبس. أكمل rustnzb 1.4.5 كل شوط هنا، بما فيه عيّنة التمويه.
عمود السلك، بدقة. 6.5 GB على العيّنة النظيفة - الرقم نفسه الذي يبلّغ عنه NZBGet وSABnzbd لنفسيهما. أسوأ حالة نعرفها هي منشور مموَّه أُعيد ترقيمه عمدًا، حيث تكلّف المناورة حول الترقيم المبعثر مقالة إضافية واحدة لكل مناورة: قيست بين 1.10 و1.20x من الخطة الدنيا على كلا الشكلين اللذين استطعنا بناءهما. خليتا rustnzb البالغتان 7.2 و37.8 GB هما زيادته الخاصة، مع تحذير في سجلّه على شوطين.
ما يعنيه عمود الذاكرة بالإعدادات الافتراضية: المنظّم هو معظم سبب احتفاظ الصف المشحون بـ143-191 MB - اتصالات أقل تعني أقل قيد التنفيذ في وقت واحد - وإيقافه (الصف الثاني) هو الجسر الأمين إلى كل جدول أقدم بـ360 مقبسًا في هذه الصفحة. حتى عند 360 مقبسًا نحن على مستوى أخفّ منافس (583 MB مقابل 628 لـrustnzb على العيّنة الصغيرة، و465 مقابل 445 على الكبيرة)؛ أما بالإعدادات الافتراضية للشحن فلا تعادل متبقٍّ.
الخطوط الأبطأ · قيست في 24 أغسطس 2026 على nzbfast 1.2.2
على خط بطيء بما يكفي، يصير زمن إنهاء كل عميل هو السلك ولا شيء غيره، فالخط البطيء يخفي كثيرًا من الخطايا. ما لا يستطيع إخفاءه هو ما يحرقه كل عميل ليملأه. شكّلنا منصة الـ1 Gbit عند معدلين حقيقيين تكون عليهما خطط فعلية وسابقنا الأذرع الستة عند كل واحد منهما - الجهاز نفسه، والمزوّدون الخمسة أنفسهم، ثلاث تكرارات لكل عميل مع تدوير الترتيب، وتحقق من كل شوط بايت لبايت، 36 من 36 صحيحًا عبر الجولتين. ذراع nzbfast عند 500 Mbit هو بناء إصدار v1.2.2 نفسه.
| خط 500 Mbit، إصدار بحجم 6.5 GB | الزمن حتى ملف قابل للاستخدام | ذروة الذاكرة (RSS) | زمن المعالج | إدخال/إخراج الجهاز (GiB) |
|---|---|---|---|---|
| nzbfast 1.2.2، كما يُشحن | 109 s | 142 MB | 45.4 s | 6.2 |
| nzbfast 1.2.2، المنظّم متوقف | 115 s | 592 MB | 59.0 s | 6.2 |
| SABnzbd 5.1.1 | 125 s | 1,665 MB | 99.2 s | 14.2 |
| rustnzb 1.4.5 | 131 s | 626 MB | 92.6 s | 14.5 |
| Weaver 0.7.8 | 138 s | 564 MB | 48.5 s | 12.4 |
| NZBGet 26.3-testing | 145 s¹ | 846 MB | 64.3 s | 13.2 |
| خط 250 Mbit، الإصدار نفسه | الزمن حتى ملف قابل للاستخدام | ذروة الذاكرة (RSS) | زمن المعالج | إدخال/إخراج الجهاز (GiB) |
|---|---|---|---|---|
| nzbfast، كما يُشحن | 217 s | 144 MB | 53.3 s | 6.2 |
| nzbfast، المنظّم متوقف | 219 s | 651 MB | 67.9 s | 6.2 |
| NZBGet 26.3-testing | 227 s | 826 MB | 78.4 s | 13.3 |
| SABnzbd 5.1.1 | 230 s | 1,667 MB | 162.4 s | 15.2 |
| Weaver 0.7.8 | 230 s | 789 MB | 62.0 s | 12.9 |
| rustnzb 1.4.5 | 256 s | 644 MB | 122.4 s | 15.4 |
اقرأ الجدولين كتدرّج. عند 250 Mbit يقع الميدان كله ضمن 18% على الساعة ونتصدّر على أقرب منافس بـ4.4%؛ عند 500 Mbit تتّسع الفجوة إلى 14.7%؛ وعند معدلَي الجيجابت و10 GbE في الجدولين أعلاه وأدناه تتّسع أكثر. فروق السرعة تكبر مع الخط. أعمدة الموارد لا تنتظر خطًا سريعًا: عند كل معدل مقيس، احتفظ كل منافس بـ3.9 أضعاف الذاكرة على الأقل، وأنفق معالجًا أكثر، وحرّك نحو ضعف بايتات القرص لنفس الملف المطابق بايت لبايت.
يكسب منظّم الاتصالات ثمنه على الخطوط البطيئة، وعدّاد الإسقاط الخاص بالمشكِّل يقول لماذا. أبقت الإعدادات الافتراضية للشحن 25 اتصالًا حيث شغّل كل منافس مئات؛ والثنائي نفسه مع إيقاف المنظّم شغّل 360. تدفّقات أقل عبر طابور ثابت تعني فقدانًا أقل وإعادة إرسال أقل: سجّل المشكِّل نحو 4,200 إسقاط لكل شوط مسقوف مقابل نحو 155,000 غير مسقوف عند 500 Mbit، وكان الذراع المسقوف أسرع، وأخفّ بـ4.2 أضعاف على الذاكرة، وأخفّ بـ1.3 ضعف على المعالج من وضعية الـ360 مقبسًا الخاصة بنا. مزيد من الاتصالات ليس مزيدًا من السرعة؛ دون الجيجابت هو العكس قياسًا.
قيست في 24 أغسطس 2026، أوساط ثلاث تكرارات، على جهاز Apple Silicon بعشرين نواة مع تشكيل خطه عند كل معدل (المعدل المشكَّل تحقّق منه مسبار مستقل قبل كل جولة: 248 و496 Mbit). ذراع nzbfast عند 500 Mbit هو بناء وسم الإصدار v1.2.2؛ وجرت جولة 250 Mbit قبل ساعات على خط الشيفرة نفسه. تُقرأ أعداد البايتات على خط مشكَّل من عدّاد كل عميل الخاص، لا من واجهة الشبكة أبدًا (يُسقط المشكِّل ويعيد TCP الإرسال، فتحسب الواجهة النسختين معًا). الساعات قابلة للمقارنة داخل كل جدول، لا عبر جولات مشكَّلة مختلفة. ¹ امتدت أشواط NZBGet الثلاثة عند 500 Mbit من 114 إلى 158 s بقراءات موارد ثابتة - تفاوت حقيقي، فيُذكر الوسيط ويُذكر التفاوت بدل تضييقه.
الملف الكبير · قيست في 24 أغسطس 2026 على nzbfast 1.2.2
الطرف الآخر من قصة معدل الخط: جهاز 10 GbE، وخمسة مزوّدين، ومنشور بحجم 87 GB حمولته فيديو واحد بحجم 76.6 GB، وستة أذرع، وثلاث تكرارات مدوَّرة، وناتج كل شوط مُتحقَّق منه بايت لبايت - أنتجت 18 من 18 شوطًا الملف نفسه، واتفق كل العملاء الستة على مجموعه التحققي. أذرع nzbfast هي بناء إصدار v1.2.2.
| منشور بحجم 87 GB، على 10 GbE | الزمن حتى ملف قابل للاستخدام | ذروة الذاكرة (RSS) | زمن المعالج | إدخال/إخراج الجهاز (GiB) | السلك (GB) |
|---|---|---|---|---|---|
| nzbfast 1.2.2 (50 اتصالًا)¹ | 70 s | 415 MB | 144 s | 72.9 | 77.2 |
| nzbfast 1.2.2، منظّم الاتصالات يعمل (25) | 90 s | 336 MB | 130.5 s | 72.9 | 77.4 |
| NZBGet 26.3-testing | 93 s | 1,195 MB | 443 s | 183.7 | 77.2 |
| SABnzbd 5.1.1 | 113 s | 1,910 MB | 234 s | 235.1 | 77.2 |
| Weaver 0.7.8 | 645 s | 1,825 MB | 631 s | 435.1² | 77.3 |
| rustnzb 1.4.5 | 869 s³ | 681 MB | 2,444 s | 216.1 | 86.9 |
قصة القرص عند أكبر حجم بعد. ذروة قرصنا أثناء المهمة هي 70.8 GiB - أقل من ناتج الـ76.6 GB - لأن ذيل الحمولة ما زال واصلًا بينما الرأس نهائي فعلًا - وإجمالي إدخال/إخراج الجهاز هو 1.00x الحمولة. يحرّك المنافسون 2.5 إلى 6.0 أضعاف البايتات لنفس الملف. والذراع الأسرع يحافظ على نحو 8.7 Gbps شاملًا التحقق والاستخراج الجاريَين ضمن التدفّق؛ فبمجرد امتلاء شريط التنزيل يكون الملف جاهزًا.
¹ كل عميل في هذه الصفحة يُسابق عند أفضل إعداداته الموثّقة، وعلى خط 10 GbE إعدادنا هو 50 اتصالًا إجماليًا - 10 لكل خادم، وهو رقم تبلغه أي فئة حساب - نفس ضبط الإعداد الواحد الذي نمنحه كل منافس (أنابيب SABnzbd، وذاكرة تخزين المقالات لدى NZBGet). خمسون ليست إعاقة: مسح بست درجات على العيّنة نفسها وجد السقف مطابقًا من 50 اتصالًا وحتى الحد الأقصى لفئة الحساب البالغ 360، بينما تكلفة المعالج ترتفع 2.3 أضعاف عبر ذلك المدى مقابل لا شيء، فالحد الأقصى لا يشتري شيئًا يُظهره هذا الجدول. أُعيد قياس صف الخمسين اتصالًا بجودة ثلاث تكرارات كاملة في اليوم نفسه، على الجهاز نفسه، مقابل المجموع التحققي للناتج نفسه: 70 / 70 / 70 s، وكلها مُتحقَّق منها بايت لبايت. صف المنظّم موجود هنا لأنه الأكثر إثارة للاهتمام: عند كل معدل حتى الجيجابت اتصالاته الـ25 مجانية-وأسرع، وحتى هنا، حيث تكلّف نحو خُمس الساعة، تشتري 336 مقابل 415 MB من الذاكرة و130 مقابل 144 ثانية معالج. توسيع المنظّم تلقائيًا مع معدل الخط - كي يكون السلوك الأفضل هو الافتراضي أيضًا، عند الركبة لا عند الحد الأقصى - مُدرَج للإصدار التالي. ² إدخال/إخراج جهاز Weaver البالغ 435 GiB لتنزيل بحجم 77 GB هو مخزنه المشفَّر عند السكون يعيد قراءة وكتابة كل شيء تقريبًا مع نمو المهمة - النمط فوق الخطي الذي قاسته جولاتنا الآلية في يوليو، وما زال حاضرًا في البناء الحالي. ³ يكتمل rustnzb 1.4.5 صحيحًا بايت لبايت وتكلفته في زمن المعالج والسلك: نحو 2,444 ثانية معالج مقابل ساعة 869 s عبر التكرارات الثلاث، و86.9 GB مسحوبة حيث الخطة المتحفّزة هي 77.2 (يجلب مجموعة الاسترداد الكاملة بلا شرط). قيست في 24 أغسطس 2026، أوساط ثلاث تكرارات، كل بناء حالي؛ التكرار الثالث للأذرع الثلاثة الأسرع جرى بعد نحو 40 دقيقة من البقية (حارس مساحة حرة أوقف الجولة مؤقتًا؛ لم يحرّك الفارق أي وسيط أكثر من تفاوت التكرار).
منذ هذه الجولة، تجاوز ما تشحنه 1.2.3 صفَّ المنظّم. قيس في 26 أغسطس 2026 على العيّنة نفسها والجهاز نفسه وخط 10 GbE نفسه، ستة أشواط صحيحة بايت لبايت مقابل مجموع التحقق الخاص بهذا الجدول: 71 s بالإعدادات المشحونة، و322 MB و139.3 ثانية معالج، مقابل 90 s أعلاه. كانت جولة لـ nzbfast وحده على بناء أحدث، لذلك تُذكر هنا بدل إقحامها في الجدول: كل صف أعلاه قائم كما قيس في 24 أغسطس.
أول عميل تجاري في هذه الصفحة: Newsbin Pro، أطول عميل Windows مدفوع صمودًا، سابقناه ببنائنا الرسمي لـWindows على جهاز 10 GbE أصيل لـWindows يحافظ قرصه النظامي من نوع TLC على 0.99 GB/s من الكتابة - أبطأ قرص في أسطول اختبارنا، ما يجعله المكان الأمين لسباق عميل تدريجي. المنشور نفسه بحجم 87 GB، ثلاث تكرارات متداخلة، وناتج كل شوط مُتحقَّق منه بايت لبايت مقابل المجموع التحققي نفسه للجدول أعلاه: 6 من 6 مطابقة.
| منشور بحجم 87 GB، Windows، قرص TLC | الزمن حتى ملف قابل للاستخدام | ذروة الذاكرة (RSS) | زمن المعالج | إدخال/إخراج الجهاز (GiB) | السلك (GB) |
|---|---|---|---|---|---|
| nzbfast 1.2.2 (50 اتصالًا) | 105 s | 469 MB | 154 s | 84.5 | 76.7 |
| Newsbin Pro 6.90 (360 اتصالًا) | 477 s | 881 MB | 1,862 s | 154.1 | 76.7 |
قيست في 24 أغسطس 2026، أوساط ثلاث تكرارات، وكلا العميلين حاليّان. عمل Newsbin عند حده الأقصى المضبوط للاتصالات لكل خادم - 360 مقبسًا مقابل 50 لدينا - وتستثني أزمنته الاستقرار البالغ 90 ثانية الذي تنتظره منصتنا قبل إعلان انتهاء عميل مراقَب، فتنحاز المقارنة إلى صفّه مرّتين وتصمد النتيجة رغم ذلك: 4.5 أضعاف الساعة، و12 ضعفًا من ثواني المعالج، و1.9 ضعف الذاكرة لنفس الملف. لا طرف مقيَّد بالقرص هنا - يحتاج الذراع أحادي المرور نحو 0.73 GB/s من 0.99 GB/s للقرص، بينما يبلغ متوسط Newsbin ثلث ذلك مع إبقاء نحو أربعة أنوية معالج مشغولة لثماني دقائق - فالفجوة هي العميل، لا العتاد. سحب كلا العميلين بايتات السلك نفسها للحمولة. Newsbin علامة تجارية مسجَّلة لشركة CMCE، Inc.؛ والعميل ناشره DJI Interprises, LLC.
الإحصاء
أُعيد الترجيح في أغسطس 2026 على عيّنة أكبر بكثير. قرأ إحصاء يوليو أدناه مجموعتين؛ يحمل الفهرس وراءه الآن 13.2 مليون إصدار و174.7 TB عبر 114 مجموعة، وتحرّك المزيج - نمت أرشيفات 7z من أقل من 2% من البايتات إلى حصة كبيرة. مُعاد القياس على تلك العيّنة، يمرّ نحو 95% من بايتات الإصدارات الكاملة بمرور واحد (من 94.3% إلى 96.3% عبر أربع طرق لتقطيع العيّنة)، والمؤهِّل الذي يهمّ فعلًا ليس شكل الأرشيف بل كلمة السر: يحتاج نحو ثلث البايتات إلى واحدة لإنتاج ناتج على الإطلاق، أيًّا كان العميل الذي تشغّله. تبقى لقطة يوليو أدناه كما هي، لقطة زمنية.
في إحصاء يوليو نظرنا في 890,852 إصدارًا، و1.6 مليون ملف، و79.6 TB عبر أكثر مجموعتَي أفلام ومسلسلات ازدحامًا، ثم جلبنا وقرأنا ترويسات أرشيفات ألف منشور حقيقي لتأكيد ما كانت تلمّح إليه أسماء الملفات فقط. عُدَّت بـالبايتات لا بالمنشور، لأن مليون ملف صغير يهمّ أقل من ملف واحد كبير.
هذا أعاد تشكيل ما نعمل عليه. لا معنى كبيرًا لضبط مسار ضغط يحمل 1.4% من البيانات، فضبطنا الاثنين اللذين يحملان الباقي.
التشفير أيضًا ليس موزّعًا بالتساوي. يتناسب مع الحجم:
| حجم الإصدار | حصة كل البيانات | مخزَّن | مشفَّر |
|---|---|---|---|
| 1-5 GB | 29% | 94% | 2% |
| 5-20 GB | 39% | 97% | 2% |
| 20-60 GB | 20% | 67% | 33% |
| فوق 60 GB | 12% | 51% | 49% |
التنزيلات العادية تكاد دائمًا أن تكون أرشيفات مخزَّنة صرفة. الكبيرة منها قرعة عملة بين المخزَّن والمشفَّر. الشكل المخزَّن هو ما يسابقه كل جدول حالي في هذه الصفحة؛ وقصة القرص للشكل المشفَّر مقيسة في قسمها الخاص أدناه.
المنشور التالف · أُعيد السباق في 24 أغسطس 2026، كل بناء حالي
تنتهي صلاحية المقالات، وتُسقطها الخوادم بصمت، وتصل الرفعات ناقصة - والتلف هو حيث تكون الفجوة بين العملاء أوسع ما تكون، فله جولته الخاصة على أحدث بناء لكل عميل، بما فيه nzbfast v1.2.2: جهاز أوروبا 10 GbE، وخمسة مزوّدين، و100 اتصال لكل عميل، الإصدار نفسه بحجم 6.5 GB مسمَّم عند ثلاثة مستويات تلف، ثلاث تكرارات لكل ذراع مع تناوب الترتيب، وتحقق من كل شوط بايت لبايت مقابل الملف النظيف. عادت 63 من 65 شوطًا مطابقة بايت لبايت؛ والشوطان اللذان لم يعودا كذلك مسمّيان أدناه، لأنهما نتيجتان.
| الزمن حتى ملف متحقَّق منه قابل للاستخدام (متوسط 3) | 60 مقالة ميتة | 20 ميتة | 5 ميتة |
|---|---|---|---|
| nzbfast 1.2.2 | 13.0 s | 10.0 s | 8.7 s |
| nzbfast 1.2.2، الإصلاح المبكر متوقف | 29.3 s | 19.0 s | 12.3 s |
| NZBGet 26.3-testing | 33.0 s | 23.7 s | 23.0 s |
| SABnzbd 5.1.1 | 48.0 s¹ | 28.0 s | 24.3 s |
| rustnzb 1.4.5 | 107.3 s² | 51.3 s | 47.0 s |
| Weaver 0.7.8 | لم يُنهِ³ | لم يُنهِ³ | 194.0 s |
لماذا المنشور التالف سريع هنا. حين تُفقَد مقالة، يسأل العميل عادةً الخادم التالي، ثم الذي يليه، حتى يرفضها كل خادم - سير متسلسل يستغرق فيه كل رفض بين عشرات المللي ثانية وثانيتين، يقعد التنزيل خلاله عند الصفر. يتوقّف nzbfast عن السؤال: بمجرد أن تغطي بيانات التكافؤ الموجودة أصلًا ما زال مفقودًا، يُصلح فورًا بدل إنهاء السير. هذا هو الصف الثاني - الثنائي نفسه بإيقاف ذلك السلوك أبطأ بـ1.4 إلى 2.3 أضعاف حسب التلف - وتحققت الجولة من أن الآلية عملت في كل شوط مفعَّل ولم تعمل أبدًا في شوط معطَّل. مقابل أقرب منافس الهامش من 2.4 إلى 2.7 أضعاف، بلا تداخل في أيّ من أزواج التكرار التسعة.
القرص هو حيث الهامش أوسع ما يكون، وليس هذا حيلة الإصلاح. أنتج كل ذراع مكتمل الملف نفسه بحجم 6.48 GB؛ حرّكنا 6.2-6.8 GB من إدخال/إخراج القرص لفعل ذلك، وNZBGet 12.7-18.5 GB، وSABnzbd 13.9-20.3 GB، وrustnzb 12.8-13.1 GB. هذا هو خط أنابيب المرور الواحد - يحرّك الصف المُوقَف نفس الـ6.2 GB - فهو يصمد على المنشورات التالفة وغير التالفة سواء بسواء.
¹ جرت أشواط SABnzbd الثلاثة عند أثقل تلف في 43 و41 و60 s - تفاوت حقيقي على مدخلات متطابقة، فيُذكر المتوسط مع ذكر المدى. ² سلَّم rustnzb 1.4.5 كل شوط صحيحًا بايت لبايت، وتكلفته في زمن المعالج لا في الموثوقية: نحو 1,620 ثانية معالج مقابل ساعة 107 s عند أثقل تلف - نحو خمسة عشر نواة مشغولة طوال الشوط - حيث يكلّفنا الناتج المُصلَح نفسه نحو 50 ثانية معالج. ³ حرّك Weaver 1.5 GB و4.9 GB من الـ6.5 ضمن مهلتنا البالغة 20 دقيقة عند مستويَي التلف الأثقل - عدم الإنهاء نفسه في الجولات الثلاث التي سابقته، في ثلاث ليالٍ منفصلة؛ المهلة لنا وعدم الإنهاء هو النتيجة. عند 5 مقالات ميتة أكمل صحيحًا في المرّات الثلاث. تكلفة معالجه هناك قصتها الخاصة: نحو 2,325 ثانية معالج للشوط البالغ 194 s، مقابل 20 لدينا.
قيست في 24 أغسطس 2026، كل بناء حالي: nzbfast v1.2.2 (وسم الإصدار نفسه)، وNZBGet 26.3-testing (بناء 20 أغسطس)، وSABnzbd 5.1.1، وrustnzb 1.4.5، وWeaver 0.7.8. سابق ذراع استمرارية بناء nzbfast الخاص بالليلة السابقة داخل هذه الجولة نفسها ووقع في ثانية واحدة من v1.2.2 على كل عيّنة، فلا شيء هنا يعتمد على ليلة محظوظة؛ وإعدادات المنافسين لا تختلف عن الجولة السابقة إلا في مسار التطبيق، مُتحقَّق منها إعدادًا إعدادًا قبل تشغيل الجولة.
العمود الصريح
هذا القسم موجود من أجل الأشواط التي يفوز بها منافس، ويُعاد قياسه كل جولة بدل أن يُنتقى: أي شيء نخسره يوضع هنا، مسمّى، إلى جانب الجدول الذي يُظهره. على البناء الحالي، هذه الجولة، خالٍ من خسائر السرعة - وهذا يستحق الحذر أكثر مما يستحق الرضا، فالمقايضات المتبقية مذكورة أدناه بدلًا من ذلك.
ما لم يزُل هو المقايضة وراء تلك الأرقام، فهذا ما يقوله هذا القسم الآن: ننفق ذاكرة أكثر مما تنفقه الأدوات المستقلة، ومسار الإصلاح الثقيل السريع ينفق الأكثر. صُمم مستخرِجنا ومُصلِحنا لركوب تنزيل حيّ لا للعمل مرة واحدة من سطر أوامر، وهذا يكلّف ذاكرة مقيمة؛ التفصيل إلى جانب جداول المكوّنات أدناه. إن كان قيدك هو أصغر بصمة ممكنة لمهمة لمرة واحدة، تفوز الأدوات المخصَّصة بذلك العمود ولن ندّعي غير ذلك.
وتضيف جولة 23 أغسطس 2026 خانة، نفضّل إدراجها هنا على تركها في حاشية: على عيّنة الـ6.5 GB، وسيط معالج Weaver أقل من رقمنا بنسبة 2% - 34.9 مقابل 35.7 ثانية معالج، مع امتداد أشواطه الثلاثة من 34.1 إلى 56.1 s - فنعدّه تعادلًا إحصائيًا، وهو موجود في جدول التكلفة موسومًا بأنه الخلية الوحيدة التي لا نحتفظ بها. وعلى عيّنة الـ34 GB في الجولة نفسها معالجنا هو الأدنى مطلقًا.
تجويعه من RAM · قيست في 24 أغسطس 2026 على nzbfast 1.2.2
المهمة نفسها بحجم 87 GB من الجولة أعلاه، أُعيد تشغيلها بميزانيات ذاكرة صارمة عند 2 GB و1 GB و256 MB - ما قد يختاره المُحجِّم التلقائي على جهاز 8 GB، وجهاز 4 GB، وNAS بحجم 2 GB. أنتج كل شوط الملف نفسه المُتحقَّق منه بايت لبايت، وتتبّع عمود الذاكرة الميزانية، لا المهمة أبدًا:
| مهمة بحجم 87 GB، على 10 GbE | تلقائي | ميزانية 2 GB | ميزانية 1 GB | ميزانية 256 MB |
|---|---|---|---|---|
| الزمن حتى ملف قابل للاستخدام | 94 s | 87 s | 94 s | 102 s |
| ذروة الذاكرة (RSS) | 286 MB | 558 MB | 336 MB | 284 MB |
| إدخال/إخراج القرص (GiB) | 73.2 | 73.2 | 72.8 | 72.7 |
شوط واحد لكل ميزانية على بناء الإصدار، محكوم مقابل المجموع التحققي نفسه للناتج في الجولة السداسية الأذرع. تكلّف أضيق ميزانية نحو 9% من الساعة، وذلك فقط لأن هذا الخط هو 10 GbE - لا تكلّف الكتل المُسكَبة إلى القرص وقتًا إلا حين يتخطّى الخط القرص سرعةً، فعلى اتصال منزلي نموذجي تكاد ميزانية صغيرة أن تكون مجانية. يتّسع السلّم كله، بما فيه تنزيل بحجم 87 GB، في 0.3-0.6 GB من الذاكرة؛ وبالإعدادات الافتراضية للشحن جرت المهمة في 286 MB. لا يعرض أي عميل آخر ميزانية ذاكرة صارمة على مستوى العملية كله؛ أقرب ما لديهم مفاتيح حجم ذاكرة تخزين مؤقت، والجولة أدناه تقيس ما تكلّفه تلك المفاتيح.
القيد سابَق مقابل مفاتيح الميدان نفسها. على عيّنة الـ34 GB (23 أغسطس 2026، جهاز 1 Gbit، خمسة مزوّدين، 30 من 30 شوطًا صحيحًا بايت لبايت)، أدّى تقييد NZBGet بذاكرة تخزين مؤقت معادلة إلى أكثر من مضاعفة معالجه (من 215.5 إلى 453.0 ثانية معالج، أي 2.10x) لشراء تخفيض 52% في ذروة ذاكرته، وكان قيد SABnzbd شبه مجاني لكنه بلغ جزءًا فقط من بصمته. كان إعداد ذاكرة rustnzb التخزينية زخرفيًا في البناء المسابَق، ولا يملك Weaver أي مفتاح ذاكرة على الإطلاق، فعملا كلاهما بلا قيد كعمودين مرجعيين بدل أن يُقيَّما عند ميزانية لا يستطيعان الالتزام بها. جانبنا من تلك الجولة يتخطّاه سلّم v1.2.2 أعلاه، الذي يقول الشيء نفسه بـ2.5 أضعاف الحجم: الميزانية ليست أبدًا القيد المُلزِم، لأن المرور الواحد يحتفظ بقليل جدًا من الأساس.
المساحة الحرة · قيست إلى الميغابايت
يحتاج عميل يكتب ثم يفك الضغط إلى مكان لمجلدات الأرشيف والحمولة المفكوكة في آن واحد، فلن تبدأ المهمة دون نحو ضعف مساحة التنزيل حرّة. يحتاج المرور الواحد الحمولة - وقاست هذه الجولة كم أكثر بالضبط، بتصغير مجلد الهدف حتى يفشل كل عميل. إجابة nzbfast هي ثابت قدره نحو 50 MB من الهامش، لا نسبة، ويصمد من مهمة بحجم 6.5 GB إلى أخرى بحجم 34 GB.
| المساحة الحرة التي تحتاجها المهمة | مهمة 6.5 GB | مهمة 34 GB |
|---|---|---|
| nzbfast 1.2.2 | الناتج + 48.6 MB | الناتج + 51.0 MB |
| NZBGet 26.3-testing | ~2.1x الحمولة | ~2.1x (37.6 GB فوق الناتج) |
| SABnzbd 5.1.1 | ~2.1x الحمولة | ~2.1x (37.6 GB فوق الناتج) |
| rustnzb 1.4.5 | ~2.25x الحمولة | ~2.25x (42.7 GB فوق الناتج) |
| Weaver 0.7.8 | ~2.25x الحمولة | ~2.25x (42.7 GB فوق الناتج)¹ |
قيست على جهاز Apple Silicon بعشرين نواة، وخط 1 Gbit، وخمسة مزوّدين، وثلاث تكرارات عند كل حد، وتحقق من كل شوط مكتمل بايت لبايت - صفوف المنافسين في 22-23 أغسطس 2026 (أُعيد تشغيل خلية Weaver البالغة 34 GB في 24 أغسطس، الحاشية 1)، وصف nzbfast أُعيد قصّه على بناء إصدار v1.2.2 في 24 أغسطس، وأعاد إنتاج الحدّين تمامًا، بإجماع 12 من 12 شوطًا عبر العيّنتين. خلايانا هي حد أدنى مقيس: تكتمل المهمة 3 من 3 بهامش 48.6 MB و51.0 MB، وتُرفض 3 من 3 عند نحو 17 MB دون ذلك - فالحد الأدنى حقيقي في الاتجاهين. ما تحتفظ به المهمة فعليًا يستقر عند الناتج زائد نحو 3 MB؛ يدفع الهامش ثمن اللحظات الأخيرة من خط الأنابيب، لا لنسخة ثانية أبدًا. خلايا المنافسين هي حدّها الأدنى المقيس على مهمة الـ6.5 GB وكفاية مؤكَّدة عند النسبة نفسها على مهمة الـ34 GB (3 من 3 صحيحة بايت لبايت عند تلك النسبة بالضبط)؛ لم نمشِ بسلّمهم أبعد عند الحجم الأكبر، فقد يقع حدّهم الأدنى الحقيقي هناك تحت النسبة إلى حدّ ما، ونقول ذلك بدل التقريب لصالحنا.
ما يبدو عليه النفاد فعليًا يهمّ بقدر الرقم نفسه. عند 17 MB دون حدّه الأدنى يصطدم nzbfast برفض القرص عند الكتابة، ويتوقّف بنظافة برسالة "نفدت مساحة القرص"، ويحتفظ بكل ما وصل مُسجَّلًا في اليوميات، وتستأنف إعادة المحاولة دون إعادة الجلب - جزء تحتفظ به، لا مهمة فاشلة. ¹ حُسم عمود Weaver على العيّنة الكبيرة بإعادة تشغيل في 24 أغسطس: ثلاثة أشواط من ثلاثة صحيحة بايت لبايت عند النسبة ~2.25x نفسها، كل منها أسرع من الشوط الجيد في المحاولة الأولى، بمساحة حرة متطابقة حتى البايت. في المحاولة الأولى، في 23 أغسطس، كان اثنان من أشواطه الثلاثة قد تعطّلا عند سرعات أحادية الرقم بالميغابايت في الثانية مع أكثر من 60 GB ما زالت حرّة وبلغا مهلة الجولة البالغة 40 دقيقة. لم تتكرر تلك التعطّلات، وكانت أدوات قياس التعطّل في المنصة منشورة وصامتة في الأشواط الثلاثة لإعادة التشغيل، وهذه قراءة إيجابية لا قراءة غائبة. ما سببها ما زال مجهولًا، وإعادة تشغيل نظيفة ليست تشخيصًا: توجد الآن ستة أشواط عند هذه النسبة، اكتمل أربعة منها، والإخفاقان كلاهما من نافذة واحدة مدتها 80 دقيقة في الليلة الأولى.
نتيجة المضاعِف
لأي قرص، سرعة الخط التي تستطيع الحفاظ عليها عبر التنزيل والتحقق وفك الضغط هي معدّل القرص الحقيقي مقسومًا على مضاعِف إدخال/إخراج العميل. تقيس جداول التكلفة أعلاه مضاعِفنا عند نحو 1.0x - يعبر كل بايت القرص مرة واحدة تقريبًا - وكل منافس عند 2.0x إلى 3.0x لناتج مطابق بايت لبايت. فالقرص نفسه يحافظ على مرتين إلى ثلاث أضعاف سرعة الخط تحت nzbfast مقارنة بما كان ليحافظ عليه تحت عميل تدريجي. الحساب، بالمضاعِفات المأخوذة من الجداول المقيسة أعلاه:
| الخط | معدل الحمولة | القرص المطلوب عند ~1.0x لدينا | عند 2.2x | عند 3.0x |
|---|---|---|---|---|
| 100 Mbit | 12.5 MB/s | ~13 MB/s | ~28 MB/s | ~38 MB/s |
| 1 Gbit | 125 MB/s | ~130 MB/s | ~275 MB/s | ~375 MB/s |
| 5 Gbit | 625 MB/s | ~650 MB/s | ~1,400 MB/s | ~1,900 MB/s |
| 10 Gbit | 1.25 GB/s | ~1.3 GB/s | ~2.75 GB/s | ~3.75 GB/s |
ضع هذه الأعمدة إلى جانب ما تحافظ عليه الأقراص فعليًا. يحافظ قرص NAS بسرعة 5400/5900 دورة في الدقيقة على نحو 100-140 MB/s على مساراته الخارجية، متدهورًا نحو 80-100 مع امتلائه - فالجيجابت على الحدّ أصلًا عند 1.0x على أبطأ فئة، ونقول ذلك صراحةً، وخارج المنال عند 2-3x. يحافظ قرص 7200 دورة في الدقيقة على نحو 160-220 MB/s. سرعة ~550 MB/s لقرص SSD من نوع SATA تسقف عميلًا بمضاعِف 2.2x قرب 2 Gbit وتحمل نحو 3.5-4 Gbit عند 1.0x. أقراص SMR، التي تُباع في حاويات NAS منذ سنوات، هي أسوأ حالة لنمط التدريج تحديدًا: يمكن للكتابة المستمرة مع إعادة القراءة أن تنهار إلى عشرات MB/s بمجرد استنفاد ذاكرة إعادة التبليط المؤقتة للقرص. والخط متعدد الجيجابت هو الجدار نفسه أعلى: يتطلّب 10 Gbit بمضاعِف 2-3x سرعة 2.75-3.75 GB/s مستمرة، متخطّيًا كل قرص SATA وكثيرًا من أقراص NVMe بمجرد أن تتخطّى مهمة كبيرة منطقة ذاكرتها المؤقتة السريعة، بينما عند 1.0x يواكب SSD بسرعة ~2 GB/s سرعة الخط بمتّسع.
مقيس لا مفترَض، على قرص مقيَّد. قيّدنا قرصًا عند 150 MB/s - معدل من فئة 5400 دورة في الدقيقة - وشغّلنا التنزيل نفسه مرتين: مرة بمرور واحد، ومرة باتّباع كتابة نمط التدريج وإعادة القراءة وفك الضغط. واكب الذراع أحادي المرور خط الـ1 Gbit عند 109.9 MB/s، أي أقل بـ0.2% من معدله غير المقيَّد؛ وهبط نمط التدريج إلى 59.0 MB/s، أي 54% من الخط. مُسحًا بارامتريًا بلا حد للخط، أخذ الذراع أحادي المرور 97% من كل ما عرضه القرص عند كل حد (290.7 MB/s من حد 300 MB/s، و145.6 من 150) عند إدخال/إخراج جهاز مقيس 1.00-1.03x، وأخذ نمط التدريج 47-48% عند 3.02x مقيسة - النسبة ثابتة عبر الحدود، وهو الحساب أعلاه معادًا إنتاجه كقياس. 32 شوطًا، وكل ناتج مُتحقَّق منه بايت لبايت.
ومرة على عتاد حقيقي، بلا تقييد. أبطأ قرص في أسطول اختبارنا هو قرص نظامي من نوع TLC على جهاز 10 GbE أصيل لـWindows، يحافظ على 0.99 GB/s من الكتابة حيث يحافظ أسرع جهاز اختبار لدينا على 5.97. جرت جولة الـ87 GB على Windows أعلاه عليه: احتاج الذراع أحادي المرور نحو 0.73 GB/s من تلك الـ0.99 للحفاظ على ساعة 105 s - متّسع باقٍ على أسوأ قرص في الأسطول - وهي الخلية العلوية اليمنى من الجدول أعلاه تهبط على قرص حقيقي لا مقيَّد. ويغلق طرف الأسطول السريع الحجة من الجانب الآخر: المهمة نفسها بحجم 87 GB، بالمعدل الكامل على 10 GbE، تنتهي في الثواني السبعين إلى الحادية والسبعين نفسها على قرص بسرعة 1.24 GB/s وعلى قرص بسرعة 5.97 GB/s - قرص أسرع بـ4.8 أضعاف يحرّك الساعة بمقدار صفر، لأنه عند مضاعِف 1.0x ينفد الخط قبل أن ينفد القرص بوقت طويل. بالنسبة لعميل تدريجي، هذان القرصان عالمان مختلفان.
ما هي هذه المنصة وما ليست. قُيِّد القرص بمتحكّم إدخال/إخراج على مستوى نظام التشغيل داخل آلة افتراضية على جهاز Apple Silicon بـ32 نواة، وذراع التدريج هو ثنائيّنا نفسه مُجبَرًا على الكتابة وإعادة القراءة وإعادة الكتابة بالطريقة التي يفعلها عميل تدريجي. لم يسابق فيها أي منافس - يخدم خط المحاكاة في هذه المنصة ملفات عادية سيتعامل معها أي منافس بمرور واحد أيضًا، فتوجيه أحدهم إليها لن يُثبت شيئًا - ما يعني أن الجدول أعلاه حساب مرتكز على زوج واحد مقيس، بمضاعِفات المنافسين مأخوذة من جداول العملاء الخمسة الحقيقية أعلاه، ونُصنّفه هكذا عمدًا. ثلاث ملاحظات أمانة ترافقه. يُخصّص المتحكّم القراءات والكتابات بميزانيات منفصلة، ما يحابي ذراع التدريج؛ على جهاز بميزانية واحدة، وهو كل قرص دوّار، ستكون حصته أدنى بعد. مضاعِف التدريج نحو 2x حين تكون المجلدات ما زالت في ذاكرة الصفحة المؤقتة عند إعادة القراءة و3x حين لا تكون، فتقع مهمة كبيرة على جهاز عادي عند طرف الـ3x. وتكلفة البحث (seek) عن كتابة وإعادة قراءة وحذف مئات ملفات المجلدات - مقابل ملف واحد مكتوب مرة بالترتيب - حجة من شكل حركة المرور، لا قياسًا بعد؛ يحتاج قرصًا دوّارًا، ونذكرها كحجة حتى يتوفّر له واحد.
الشكل الثاني · قرعة عملة الإصدار الكبير
نصف كل ما يُنشر فوق 60 GB أرشيف مشفَّر، وهو الشكل الذي يدفع فيه العملاء التدريجيون أكثر ما يدفعون: يجب كتابة البيانات المقفلة ثم إعادة قراءتها وفك قفلها وكتابتها مجددًا. يفك nzbfast كل قطعة فور وصولها، فلا تبلغ البيانات المقفلة القرص على الإطلاق. قيست على إصدار مشفَّر حقيقي بحجم 94 GB:
| إصدار مشفَّر بحجم 94 GB، بمرور واحد | مقيس |
|---|---|
| مكتوب إلى القرص | 90.1 GB - نحو الحمولة، مرة واحدة |
| أكثر قرص مستخدَم في آن واحد | 89.6 GB - الملف الناتج نفسه |
| الوقفة بعد التنزيل | 0.6 s |
أكثر قرص مستخدَم في آن واحد هو حجم الملف الذي طلبته. لا لحظة أثناء تنزيل مشفَّر يحتاج فيها nzbfast مكانًا لنسخة ثانية، ولا مرور فك بعد امتلاء شريط التنزيل - يدفع عميل تدريجي نحو الضعف على كل من هذه الصفوف الثلاثة، وهو نفس الـ2x الذي تقيسه جداول التكلفة أعلاه على كل شكل آخر.
القرص المستخدَم أثناء تنزيل واحد، مأخوذ كل خمس ثوانٍ. الخط الثابت هو nzbfast؛ والخط الذي يتسلّق إلى 166 GB في النهاية هو نمط الكتابة ثم فك القفل، يدفع ثمن الملف المكتمل بينما النسخة المقفلة ما زالت على القرص - قيس بتشغيل النمطين معًا على الإصدار نفسه.
منشورات متداخلة · قيست في 28 أغسطس 2026
كثير مما يُنشر صعب الفتح عن قصد. اسم الملف الحقيقي مدفون داخل أرشيف ثانٍ، وأحياناً ثالث، وأحياناً بصيغة مختلفة في كل طبقة، حتى يكشف المنشور أقل ما يمكن عما يحتويه. يضاف إلى ذلك أن المنشورات تصل تالفة: تنتهي صلاحية المقالات، وتصل الرفعات ناقصة، ويجب استخدام بيانات الاسترجاع قبل أن يمكن استخراج أي شيء. إما أن يسير برنامج التنزيل في تلك السلسلة نيابةً عنك، أو يسلّمك مجلداً مليئاً بالأرشيفات ويتوقف.
لذلك بنينا عشر صيغ تعزل هذا الأمر بالضبط، وواجهنا بها كل برنامج حالي، ثم فعلنا ما تتخطاه المقارنات عادةً: حيث توقف برنامج مبكراً، أكملنا العمل يدوياً بالأدوات المعتادة وقِسنا زمن ذلك أيضاً. البرنامج الذي يستسلم بسرعة يبدو سريعاً حتى تحسب العمل الذي تركه لك.
| عشر صيغ مغلّفة وتالفة | أنجزها وحده | بعد إصلاح يدوي فقط | لم يصل إلى الملف إطلاقاً |
|---|---|---|---|
| NZBGet 26.3 | 2 من 10 | 8 | 0 |
| SABnzbd 5.1.2 | 5 من 10 | 3 | 2 |
| nzbfast 1.2.4 | 10 من 10 | 0 | 0 |
| rustnzb 1.4.5 | 7 من 10 | 1 | 2 |
| Weaver 0.7.8 | 1 من 10 | 1 | 8 |
nzbfast هو الوحيد الذي ينهي العشر جميعها دون مساعدة. يصل NZBGet إلى الملف في كل صيغة أيضاً، لكنه يحتاج إلى 16 جولة من الإصلاح والاستخراج اليدويين في ثمانٍ منها. ينهي SABnzbd خمساً بمفرده، وتبقى اثنتان بعيدتي المنال حتى يدوياً. يصل Weaver إلى الملف في اثنتين.
النمط ليس عشوائياً. الصيغ التي يجتازها nzbfast ولا يجتازها غيره هي المغلّفة والتالفة: أرشيف داخل أرشيف، وتغيير للصيغة في منتصف السلسلة، وسلسلة من خمس طبقات، وقبل كل شيء أرشيف يصل تالفاً ومعه بيانات الاسترجاع الخاصة به. في هذه الأخيرة تستخرج أربعة برامج المجموعة الخارجية استخراجاً سليماً، وتسلّمك الأرشيف المعطوب مع مجموعة الاسترجاع التي كانت ستصلحه، ثم تتوقف.
حيث تنجز البرامج العمل نفسه، الفارق ليس ضئيلاً. هذه هي الصيغ السبع التي تصل إليها البرامج الأربعة الشائعة جميعها، محتسباً الإصلاح اليدوي الذي احتاجه كل منها:
| الصيغ السبع التي تصل إليها الأربعة | الزمن حتى ملف قابل للاستخدام | المكتوب على القرص |
|---|---|---|
| NZBGet 26.3 | 51.2 s | 29.83 GB |
| SABnzbd 5.1.2 | 52.3 s | 32.27 GB |
| nzbfast 1.2.4 | 10.3 s | 11.68 GB |
| rustnzb 1.4.5 | 41.8 s | 27.75 GB |
أسرع بأربع إلى خمس مرات، وبأقل من نصف البايتات المكتوبة. رقم القرص هو الذي يظل مهماً بعد التنزيل: كل جيجابايت في ذلك العمود جيجابايت اضطر قرصك إلى استيعابه، والبرامج التي تستخدم منطقة وسيطة تكتب المحتوى ثم تعيد قراءته ثم تكتبه مرة أخرى.
حيث لا نتقدم، ولماذا يستحق ذلك القول. في أربع من الصيغ العشر يكتب منافس بايتات أقل من nzbfast أثناء التنزيل نفسه. في كل مرة لأنه أنجز أقل: في صيغة الأرشيف الداخلي التالف يكتب NZBGet 3.29 GB مقابل 4.65 لدينا، ثم تكتب جولة الإصلاح لديه 2.91 إضافية لينتهي عند 6.20 GB مقابل 4.65 لدينا. في البقية، البرنامج الذي كتب أقل قدر هو برنامج لم يصل إلى الملف إطلاقاً. الرقم الصغير على القرص ليس اقتصاداً دائماً.
هذه اختبارات قدرة، لا اختبارات سرعة. المحتويات صغيرة وتُقدَّم من الذاكرة عبر اتصال محلي، بلا مزود وبلا شبكة في المسار، فلا شيء هنا مقيَّد بسرعة التنزيل، والثواني المطلقة أقصر بكثير مما ستستغرقه الصيغ نفسها في الواقع. أما إن كانت الصيغة تتطلب عملاً يدوياً أصلاً فتلك خاصية للصيغة وللبرنامج وتنتقل مباشرة. الثواني تقارن برامج تؤدي عملاً متطابقاً؛ وهي لا تتنبأ بمدة مهمة حقيقية.
النتائج الكاملة لكل صيغة، وماهية كل صيغة، والمنهج موجودة في صفحة بيانات الأرشيفات المتداخلة.
لماذا يهمّ
يبلى التخزين الفلاشي بالكتابة إليه. يكلّف إصدار بحجم 94 GB قرصك نحو 90 GB من الكتابة تحت nzbfast؛ وتحت عميل يُدرِّج ويفك الضغط، يكلّف الإصدار نفسه نحو الضعف. على NAS بأقراص صلبة يزيل شكل المرور الواحد أيضًا المرور الطويل أحادي الخيط في نهاية كل تنزيل مشفَّر - وقفة قيست بـ20 ثانية على محطة عمل بـ32 نواة سريعة بفك قفل مسرَّع بالعتاد، وأطول تناسبيًا على الأجهزة منخفضة الطاقة التي يشغّل عليها معظم الناس هذا فعليًا. نذكر الرقم الصغير لأنه ما قسناه.
مبارزات المكوّنات
الإصلاح (PAR2) وفك الضغط (RAR) هما شيفرتنا الأصلية لا ثنائيات خارجية مرفَقة، فنسابقهما أيضًا مستقلَّين مقابل الأدوات المخصَّصة على عيّنات متطابقة، على أربعة أجهزة تمتد مما قد يملكه القارئ فعليًا. لا يُحتسَب زمن إلا حين يكون الناتج مطابقًا بايت لبايت لحمولة المصدر: كل رقم RAR أدناه تحقّقنا منه بـsha256 مقابل المصدر، وكل ملف مُصلَح مقابل المجموعة السليمة.
استخدمت الجولة السابقة
من هذا الجدول من 100 MB إلى 200 MB لكل شكل، وكان ذلك خطأ: كان نحو 28 ms من إطلاق
العملية يمثّل 40% من شوط التخزين، والترتيب الذي أنتجه لا يصمد بحجم واقعي. هذه
الجولة 1 GB من الحمولة لكل شكل، وهي تغيّر عدة إجابات، بعضها في الاتجاه
الآخر. أُنشئت الأرشيفات بأداة rar الرسمية 7.23، فلا تُحكَم أي أداة
على مدخل من مُرمِّزها الخاص، وتُسابق البايتات نفسها على كل جهاز.
ما في الحمولة يهمّ أكثر مما يبدو.
حمولة مبنية من نسخ كتل تجعل كل شكل مضغوط قياس نسخ ذاكرة؛ وحمولة نص صرف تجعله
قياس حروف وHuffman؛ قسنا كلا الأمرين ولا يتّفقان على الفائز. فالأشكال المضغوطة
الأربعة تستخدم أثلاثًا متساوية من النص والسجلات المهيكلة والبايتات غير القابلة
للضغط، والشكلان عند طرفَي ذلك المدى ذراعان منفصلان عمدًا: store غير
قابل للضغط وrepetitive كله تقريبًا تطابقات. باني العيّنة والمنصة
موجودان في المستودع، فيمكن إعادة بناء العيّنة بايتًا لبايت.
أُعيد السباق في 23 أغسطس 2026 على محرّك 1.2.2، والمسح يصمد. الأدوات الثلاث التي يزنها القارئ أكثر ما يزن - أداتنا، وunrar 7.23، وrarpar 0.2.5 - أُعيد سباقها على المكتب ذي الـ32 نواة على محرّك الإصدار (شيفرة الاستخراج المسابَقة مطابقة بايت لبايت لوسم 1.2.2)، ست جولات متداخلة، الأدنى لكل أداة، وناتج كل شوط مُتحقَّق منه مقابل بيان العيّنة. ثوانٍ، الأقل أفضل:
| حمولة 1 GB، 32 نواة (23 أغسطس 2026) | store | 400 ملف صغير | solid | repetitive | كبير، 3 مجلدات | مشفَّر | قاموس 128 MiB |
|---|---|---|---|---|---|---|---|
| nzbfast 1.2.2 | 0.119 | 0.474 | 1.515 | 0.120 | 1.118 | 1.137 | 1.146 |
| unrar 7.23 | 0.190 | 2.032 | 1.784 | 0.139 | 1.655 | 1.846 | 1.420 |
| rarpar 0.2.5 | 0.206 | 2.563 | 2.395 | 0.237 | 1.852 | 1.857 | 1.725 |
كل الأشكال السبعة لنا، على الأدنى وعلى الوسيط، من 1.16x إلى 4.29x مقابل unrar. هذه الأزمنة غير قابلة للمقارنة خليةً بخلية مع الجدول الأوسع أدناه - نُقِّحت المنصة منذ جولات ذلك الجدول وتختلف أعداد الجولات - فاقرأ كل جدول مقابل نفسه. يحتفظ الجدول الأوسع بتواريخه الخاصة وميدانه السداسي الأدوات، ويصف عمود nzbfast فيه المحرّك الذي يشحنه 1.2.2: قاست إعادة السباق أعلاه المحرّك الحالي مستوًى مع بناء ذلك الجدول على الأشكال السبعة كلها، محسومًا بعدد تعليمات العتاد (0.14% أقل للساعة نفسها)، فتلك الخلايا ليست أرقام بناء متجاوَز يرتدي تسمية حالية. وإعادة السباق هذه هي أيضًا حيث كُسبت قاعدة A/A في قسم الإعداد. أبلغ تمرير في اليوم نفسه أولًا عن شكل واحد كتراجع طفيف مقابل بنائنا السابق، وصمدت القراءة عبر تشغيل كلا ترتيبَي الأذرع. أظهر ضابط A/A - الثنائي نفسه يسابق نسخة مطابقة بايت لبايت من نفسه - أن المنصة كانت تمنح أيّ ذراع يعمل أولًا عقوبة نحو 1.5%: فاز الثنائي نفسه بـ6 من 15 جولة فقط من الفتحة الأولى، وتبديل الترتيب لا يُلغي انحيازًا يقع دائمًا على من يعمل أولًا. حسم عدد تعليمات العتاد السؤال الذي عجزت المنصة عن حسمه - يقاعد البناء الأحدث 0.14% تعليمات أقل للساعة نفسها، فلا تراجع هناك. كل مقارنة بناء مقابل بنائنا ننشرها الآن تحمل ذلك الضابط.
الميدان كله، ثوانٍ، الأقل أفضل.
أفضل ثلاث، الأدوات متداخلة داخل كل جولة لا مشغَّلة في كتل، والناتج مُتحقَّق منه
مقابل حمولة المصدر في كل تشغيل واحد. أداة أنتجت بايتات خاطئة تحصل على ملاحظة
صحة، لا زمنًا سريعًا أبدًا. rarpar هي شيفرة RAR وPAR2 الخاصة
بـWeaver، مبنيّة من المصدر عند bd87611؛ نثبّت الالتزام (commit)
لا الإصدار لأن حزماته تحمل ثلاثة أرقام إصدار مختلفة.
| ثوانٍ، 1 GB لكل شكل | store | 400 ملف صغير | solid | repetitive | كبير، 4 مجلدات | مشفَّر | قاموس 128 MiB |
|---|---|---|---|---|---|---|---|
| مكتب متطوّر، 32 نواة | |||||||
| nzbfast | 0.21 | 0.47 | 1.26 | 0.14 | 1.08 | 1.09 | 1.07 |
| unrar 7.23 | 0.21 | 2.02 | 1.62 | 0.16 | 1.61 | 1.82 | 1.37 |
| rarpar | 0.23 | 2.55 | 2.22 | 0.26 | 1.75 | 1.74 | 1.64 |
| unar 1.10.7 | 0.60 | 6.40 | 5.29 | 0.69 | 5.41 | 6.88 | 4.03 |
| bsdtar | 0.34 | 13.67 | 11.48 | 1.86 | ناتج خاطئ² | لا تشفير³ | لا قاموس كبير⁴ |
| 7-Zip | 0.30 | غير مدعوم¹ | غير مدعوم¹ | غير مدعوم¹ | غير مدعوم¹ | غير مدعوم¹ | غير مدعوم¹ |
| مكتب أقدم، 20 نواة | |||||||
| nzbfast | 0.16 | 0.57 | 1.83 | 0.15 | 1.50 | 1.51 | 1.40 |
| unrar 7.23 | 0.25 | 2.48 | 2.31 | 0.20 | 2.28 | 2.49 | 1.84 |
| rarpar | 0.28 | 3.15 | 3.00 | 0.31 | 2.26 | 2.26 | 1.97 |
| unar 1.10.7 | 0.67 | 7.49 | 6.93 | 0.85 | 6.85 | 8.49 | 5.29 |
| bsdtar | 0.33 | 15.58 | 13.97 | 2.18 | ناتج خاطئ² | لا تشفير³ | لا قاموس كبير⁴ |
| 7-Zip | 0.33 | غير مدعوم¹ | غير مدعوم¹ | غير مدعوم¹ | غير مدعوم¹ | غير مدعوم¹ | غير مدعوم¹ |
| محمول، 14 نواة / 20 خيطًا، Windows⁵ | |||||||
| nzbfast | 0.35 | 1.05 | 2.92 | 0.32 | 2.32 | 2.22 | 2.04 |
| unrar 7.23 | 0.63 | 6.37 | 6.14 | 0.62 | 2.92 | 3.33 | 2.44 |
| rarpar | 0.74 | 11.58 | 9.76 | 0.54 | 2.72 | 2.85 | 2.38 |
| unar | لا CLI⁵ | لا CLI⁵ | لا CLI⁵ | لا CLI⁵ | لا CLI⁵ | لا CLI⁵ | لا CLI⁵ |
| bsdtar | 0.81 | 16.72 | 15.14 | 1.13 | ناتج خاطئ² | لا تشفير³ | لا قاموس كبير⁴ |
| 7-Zip | 0.76 | 5.45 | 5.79 | 0.65 | 4.21 | 4.13 | 2.51 |
| محمول، Apple M5 Max⁶ | |||||||
| nzbfast | 0.10 | 0.40 | 1.15 | 0.10 | 0.98 | 0.99 | 0.94 |
| unrar 7.22 | 0.16 | 1.94 | 1.87 | 0.15 | 1.75 | 1.91 | 1.52 |
| rarpar | 0.11 | 2.09 | 1.97 | 0.18 | 1.54 | 1.55 | 1.33 |
حيث عجز الميدان عن المنافسة، ولماذا.
¹ إن 7-Zip المُسابَقة هنا هي حزمة Homebrew، التي ترفض كل شكل مضغوط برسالة
ERROR: Unsupported Method ولا تقرأ إلا الشكل المخزَّن على macOS.
نسبت نسخة أقدم من هذه الصفحة ذلك إلى بناء 7-Zip لـmacOS، وكان ذلك خطأ: يبنيها
Homebrew دون مرمّز unRAR غير الحر، بينما يحمل بناء macOS الذي يشحنه 7-zip.org
المرمّز ويفكّ الأشكال السبعة كلها، كما يفعل بناء Windows. أُعيد القياس في 14
أغسطس 2026. إن ثبّتّ 7-Zip من المشروع لا من Homebrew، فهذا العمود لا يصف ما
لديك. ² لا يدعم bsdtar تعدد مجلدات RAR5 وأنتج ملفًا مبتورًا دون الإبلاغ عن خطأ،
فذلك الشوط فشل صحة لا زمنًا بطيئًا؛ اكتشفته منصتنا بفحص الناتج، وهذا سبب قيمة
فحص الناتج. ³ bsdtar: Encryption is not supported. ⁴
bsdtar: Declared dictionary size is not supported. ⁵ لا يشحن unar
أي أداة سطر أوامر لـWindows، فميدان المحمول خمسة. ⁶ تسابق مجموعة M5 Max الأدوات
الثلاث التي قد يقصدها قارئ macOS فعليًا - unrar وrarpar ونحن؛ لم تُسابَق unar
وbsdtar وZip-7 على ذلك الجهاز. نسخة unrar عليه هي 7.22، أحدث بناء يعمل دون تدخّل
هناك.
كل شكل على كل جهاز إلا واحدًا، وذلك
الواحد تعادل. ترجع أشكال التطابقات القصيرة إلى شيئين محدَّدين في مفكِّكنا.
كانت مطابقة من اثنين إلى اثنين وثلاثين بايتًا تدفع ثمن استدعاء كامل لروتين نسخ
الذاكرة في المنصة، وكان الاستدعاء يكلّف أكثر من النسخ؛ نسخ اثنين وثلاثين بايتًا
ثابتة عبر سجلّ بدلًا من ذلك هو سبب سرعة repetitive وsolid وقاموس
128 MiB - الأشكال الثلاثة المبنية من تطابقات قصيرة - جميعًا دفعة واحدة. ويعمل
المجموع التحققي في مسار منفصل عن خيط الكاتب لا عليه. الخلية الوحيدة التي لا نفوز
بها صراحةً هي الشكل المخزَّن على المكتب ذي الـ32 نواة، حيث نبعد نحن وunrar ثلاث
مللي ثانية على شوط ينقل بايتات صرفة - متطابقان عند دقة هذا الجدول، فتُوسَم
الخليتان معًا ويُحتسب تعادلًا، لا خسارة ولا فوزًا.
الشكل الذي نفوز به بأكبر فارق هو ما
يُنشر منه يوزنت فعليًا مئات في المرة: 400 ملف صغير، 4.3× و4.4× مقابل unrar
و5.4× إلى 5.5× مقابل rarpar. تلك موازاة على مستوى العضو، وهي الفرق
بين مستخرِج كُتب لطابور تنزيل وآخر كُتب لسطر أوامر. الشكل المخزَّن، الذي يقول
الإحصاء أعلاه إنه 84% من البايتات على السلك، شبه تعادل بين
الأدوات الجادة الثلاث، لأن الجميع عند تلك النقطة ينقل بايتات فحسب.
خيار يستحق التصريح به. تُحزَم الأرشيفات بضغط مثبَّت عند أربعة خيوط. يتبع تقسيم كتل RAR خلاف ذلك عدد أنوية أي جهاز حزم الأرشيف، فينتج مكتب بـ32 نواة ومكتب بـ20 نواة بايتات مختلفة من المدخل نفسه وتتوقّف الأجهزة عن كونها قابلة للمقارنة. تثبيته يجعل عيّنة الاستخراج مطابقة بايت لبايت في كل مكان، وهذا هو المقصود، لكنه أيضًا يسقف مقدار ما يمكن لفكّ الضغط تشغيله بالتوازي - فحين كان أقرب شكلين خسارتين أعدنا سباقهما مقابل أرشيفات حُزمت بكل الأنوية الـ32، للتحقق من أن التثبيت لم يكن السبب. لم يكن كذلك: تحرّك solid من 4.2% متأخرًا إلى 2.4% متأخرًا، وقاموس 128 MiB من 6.6% إلى 6.3%، الترتيب نفسه في الحالتين. كلاهما فوزان الآن على العيّنة المثبَّتة بفارق أوسع مما يمكن لذلك الفحص تفسيره.
لماذا لا صف لـRAR4، وماذا يحدث لتلك
المنشورات. كل شكل أعلاه هو RAR5 أو RAR7، وهو ما ينشره يوزنت اليوم. لا تزال
أرشيفات RAR4 الأقدم تظهر، ويقرأها المحرّك نفسه، بما فيها الأشكال المضغوطة
والمحمية بكلمة سر، بالمرور الواحد نفسه بدل كتابة المجلدات إلى القرص وفكّ ضغطها
لاحقًا. لا صف لها هنا لأن أداة rar الرسمية 7.23 لم تعد تستطيع إنشاء
RAR4، فلا عيّنة محايدة لسباق الميدان عليها؛ ذلك العمل مُتحقَّق منه مقابل أرشيفات
كتبها WinRAR 3.00 بدلًا من ذلك، بايتًا بايت مقابل unrar.
العيّنة: 1 GiB من حمولة عشوائية حُزمت بنمط التخزين في 21 مجلد RAR، ثم مجموعتا PAR2 عند 10% تكرار، واحدة بكتل 1 MiB وأخرى بكتل 64 KiB، ثم خرائط تلف ثابتة. يستخدم كل تشغيل البروتوكول نفسه: نسخة طازجة، اقرأ العيّنة كاملة مرة لتدفئة ذاكرة التخزين المؤقت، ثم اقِس. أفضل ثلاث جولات متداخلة؛ يُقارَن كل مجلد مُصلَح مقابل المجموعة السليمة في كل جولة. الأقل أفضل.
تصحيح بشأن العيّنة، لأن نسخة أقدم من هذه الصفحة بالغت فيه. قلنا إن كل جهاز شغّل عيّنة مطابقة بايت لبايت، مُتحقَّقًا منها بالتجزئة. تجزئة كل مجلد في كل مجموعة تُظهر أن ذلك صحيح على المكتب ذي الـ32 نواة والمحمول Windows، وهما متطابقان تمامًا، وليس صحيحًا على المكتب ذي الـ20 نواة، الذي يحمل سحبًا عشوائيًا مختلفًا من الشكل نفسه: المجلدات الـ21 نفسها بالأحجام نفسها، وحجما الكتلة نفسهما، والتلف مُتحقَّقًا منه عند 3 و101 و1,500 كتلة نفسها موزّعة عبر عدد الملفات نفسه. كل رقم داخل صف واحد ما زال مقيسًا على بايتات تشتركها كل أداة في ذلك الصف، وهو ما ترتكز عليه كل مقارنة. لكن الصفوف ليست أربع نظرات إلى مدخل واحد، وبما أن طابع الحمولة يستحق نحو 7% لأحد المنافسين في مسحه، فذلك يستحق ذكره بدل التعتيم عليه.
أيّ par2 هو أيّ. par2cmdline
الأصلي هو التطبيق المرجعي الذي تفرَّع منه الجميع. par2cmdline-turbo
هو التفرّع الذي يزوّد نوى Galois-field المكتوبة يدويًا بـSIMD من ParPar:
هذا بالضبط ما تعنيه كلمة "turbo"، وهذا سبب استحقاق turbo، لا الأصلي، القياس
مقابله. يشغّل عمودا turbo أدناه نوى ParPar نفسها. ما يفرّقهما ليس الحساب بل
البناء والخيارات.
تأكَّد على البناء المشحون مقابل
المنافس الحالي، في 24 أغسطس 2026. قيست هذه الجداول قبل قصّ 1.2.2 وقبل أن
يُصدِر par2cmdline-turbo النسخة 1.5.0 (20 أغسطس 2026)، فأُعيد
سباق عمود العشرين نواة على كليهما: بناء إصدارنا 1.2.2 مقابل turbo 1.5.0، ثلاث
جولات متداخلة لكل شوط، وكل ملف مُصلَح مقارَن مقابل المجموعة السليمة. تعيد كل
الأشواط الأربعة إنتاج النتيجة - أرقامنا 0.18 / 0.30 / 0.75 / 2.02 مقابل
0.19 / 0.33 / 0.74 / 2.07 المطبوعة هنا، ويهبط turbo 1.5.0 ضمن نسب مئوية قليلة
من بناء الجدول على كل شوط وكلا الإعدادين. تبقى الخلايا كما نُشرت؛ وتحتفظ
الأجهزة الثلاثة الأخرى بتواريخها الخاصة.
فيظهر المنافس مرّتين، وأحد هذين
العمودين هو أفضل حالته لا افتراضه. الثنائي المنشور الذي قد تنزّله مُصرَّف
لعتاد أساس عام ويجزّئ ملفين أو ثلاثة فقط في وقت واحد؛ بناء المصدر نفسه للمعالج
المضيف فعليًا وتمرير -T16 يتيح له استخدام التعليمات التي يملكها ذلك
الجهاز فعلًا وتجزئة ستة عشر ملفًا مرة واحدة. على المحمول يستحق ذلك حتى 2.6x،
كله من البناء والخيارات فحسب. احكم علينا بالعمود المضبوط، وهو المقارنة الأصعب؛
العمود كما يُشحن هو ما يختبره فعليًا من ينزّله. par2cmdline هو
الأصلي، النسخة 1.2.0، مبني من المصدر على كل جهاز. rarpar هو تطبيق
Weaver الخاص لـPAR2، مبني من المصدر بمحرّك Metal GPU مفعَّلًا. par2j
من MultiPar مقتصر على Windows، فيظهر على صفوف المحمول Windows وحدها. تسابق
صفوف M5 Max الأداتين ذواتَي بناء macOS arm64 الحالي إلى جانب عمودَي turbo؛
لم تُسابَق النسخة الكلاسيكية من par2cmdline على ذلك الجهاز.
| ثوانٍ، مجموعة 1 GiB | مكتب، 32 نواة | مكتب، 20 نواة | محمول، 14 نواة | محمول، M5 Max |
|---|---|---|---|---|
| بلا تلف - تحقق نظيف | ||||
| nzbfast | 0.11 | 0.19 | 0.23 | 0.18 |
| par2-turbo، مضبوط | 0.31 | 0.38 | 0.42 | 0.28 |
| par2-turbo، كما يُشحن | 0.86 | 1.12 | 1.06 | 0.80 |
| par2cmdline | 3.03 | 3.84 | 3.81 | لم يُسابَق |
| rarpar | 2.62 | 3.45 | 2.96 | 2.32 |
| MultiPar | Windows فقط | Windows فقط | 1.34 | Windows فقط |
| 3 كتل تالفة - بضع مقالات ميتة | ||||
| nzbfast | 0.22 | 0.33 | 0.46 | 0.26 |
| par2-turbo، مضبوط | 0.51 | 0.66 | 0.78 | 0.48 |
| par2-turbo، كما يُشحن | 1.08 | 1.46 | 1.42 | 1.00 |
| par2cmdline | 3.64 | 4.58 | 4.98 | لم يُسابَق |
| rarpar | 4.27 | 5.53 | 4.99 | 3.64 |
| MultiPar | Windows فقط | Windows فقط | 1.71 | Windows فقط |
| 101 كتلة تالفة | ||||
| nzbfast | 0.48 | 0.74 | 0.96 | 0.66 |
| par2-turbo، مضبوط | 0.88 | 1.17 | 1.40 | 0.85 |
| par2-turbo، كما يُشحن | 2.04 | 2.65 | 2.69 | 1.84 |
| par2cmdline | 5.57 | 7.57 | 11.7 | لم يُسابَق |
| rarpar | 4.73 | 5.73 | 5.74 | 4.17 |
| MultiPar | Windows فقط | Windows فقط | 2.65 | Windows فقط |
| 1,500 كتلة تالفة - استُهلك 91% من الاسترداد | ||||
| nzbfast | 1.00 | 2.07 | 2.46 | 1.61 |
| par2-turbo، مضبوط | 3.00 | 5.52 | 6.73 | 4.07 |
| par2-turbo، كما يُشحن | 5.21 | 8.20 | 9.30 | 6.01 |
| par2cmdline | 67.7 | 86.1 | 403 | لم يُسابَق |
| rarpar | 7.15 | 11.49 | 14.22 | 6.91 |
| MultiPar | Windows فقط | Windows فقط | 5.40 | Windows فقط |
كل خلايا nzbfast الست عشرة - أربعة أجهزة عند أربعة مستويات تلف - لنا، عدة منها بأكثر من 2× مقابل البناء المضبوط وبـ2.3× إلى 7.7× مقابل ما قد تنزّله فعليًا. خلايا التلف الثقيل هي المثيرة للاهتمام، والملاحظة أدناه تشرح الخوارزمية وراءها.
الأصلي عاد إلى الجدول، ويستحق أن
نرى لماذا يوجد التفرّع أصلًا. أسقطت نسخة أقدم من هذه الصفحة عمود
par2cmdline على أساس أنه أبطأ من كل شيء آخر في الجولة، وهذا صحيح
وليس سببًا كافيًا: إنه التطبيق الذي تفرَّعت منه كل أداة أخرى تقريبًا، ويستحق
القارئ الأساس المرجعي بدل تأكيدنا عليه. عند أثقل مستوى تلف يستغرق نحو 69 s حيث
يستغرق التفرّع بـSIMD 3.2 s ونستغرق نحن 3.1 s. هذا العامل العشرون هو كل الحجة
لنوى Galois-field المكتوبة يدويًا، وهي الحجة نفسها التي نسوقها لأدواتنا.
التلف الخفيف هو الحالة التي تهمّ. حفنة من المقالات الفاشلة أشيع بكثير من 101 كتلة ميتة، ولا شيء يشبه 1,500. معظم الإصلاح الخفيف ليس حساب Reed-Solomon على الإطلاق، إنه قراءة جيجابايت وتجزئته بـMD5، وهذا سبب تتبّع صف الثلاث كتل صف التحقق النظيف لا صفوف الإصلاح.
أثقل مستوى تلف نوع عمل مختلف، ويحصل على خوارزمية مختلفة. يتلف ذلك المستوى الأخير 1,500 كتلة عبر المجلدات الـ21 كلها ويستهلك نحو 91% من بيانات الاسترداد، حيث يصير حساب Reed-Solomon، لا التجزئة أو القرص، تقريبًا كل العمل. يحسب البناء المشحون الإصلاحات الأثقل بتحويل نظري-عددي بدل طيّ Galois-field الكلاسيكي - الحساب نفسه، مُقيَّمًا بصيغة تتوسّع أفضل بكثير عند عدد كتل مرتفع: بفارق 2.7× أمام البناء المضبوط على المكتب ذي العشرين نواة، وعلى المحمول Windows 2.7× أمام البناء المضبوط و2.2× أمام MultiPar. لا يزال التلف الخفيف يشغّل المسار الكلاسيكي، وهذا سبب بقاء المستويات الأخرى شبه ثابتة: لا يُجدي التحويل إلا فوق نحو 512 كتلة تالفة، فتحت ذلك لا يستخدمه الموزِّع.
لا يستحق مسار أسرع أن يكون إلا إن كان لا يمكن أن يكون خاطئًا. يحسب المساران الكمية نفسها ويتطابقان بايت لبايت بالبناء، وكل إصلاح في هذه الصفحة كان محكومًا بمطابقة الملفات المعاد بناؤها للمجموعة السليمة: 228 إصلاحًا مؤقَّتًا عبر أجهزة هذه الجولة، صفر حالات عدم تطابق. لا يعتمد البناء المشحون على ذلك السجل. يتحقق كل إصلاح من ناتجه مقابل تجزئات الملفات، وواحد فشل كان سيُعاد بالمسار الكلاسيكي تلقائيًا، ويسجّل الانحراف، ويحتفظ بالمسار الكلاسيكي لبقية ذلك التشغيل. الإعداد موجود في لوحة التحكم باسم وضع PAR السريع إن فضّلت عدم استخدامه أصلًا، والأجهزة ذات الذاكرة القليلة جدًا له ترفضه من تلقاء نفسها بدل المحاولة والفشل. أُعيد القياس في 2 أغسطس على البناء الحالي: يقع المكتبان ضمن نسب مئوية قليلة من هذا الجدول، ومع إيقاف وضع PAR السريع يعود المكتب ذو العشرين نواة إلى زمن المسار الكلاسيكي الأبطأ بالضبط، وهذا ما يقول إن الفوز هو الأسلوب لا الظروف.
احتاج عمود المحمول Windows تصحيحًا،
وهو ضدنا. يخفض Windows العمل الخلفي المستمر إلى أنويته الاقتصادية بعد بضع
ثوانٍ. تنسحب خدمتنا من ذلك عند الإقلاع ولا تستطيع أي أداة أخرى فعل ذلك، فنشرت
نسخة أقدم من هذه الصفحة أزمنتها المخنوقة وكأنها أزمنة الأدوات نفسها. إعادة
تشغيل ذلك الجهاز مع رفع كل أداة إلى أولوية عالية يحرّك الميدان كله: عند أثقل
مستوى تلف ينتقل par2-turbo من 22.4 s إلى 6.41 وينتقل
rarpar من 59.2 s إلى 14.4، وفي إحدى نسخ هذه الصفحة حوّل ذلك العمود
من لنا إلى عمود خسرناه. يُقاس عمود المحمول كله بتلك الطريقة الآن - ويبقى التصحيح
حتى بعد أن استعاد الصف الفوز بتغيير الخوارزمية أعلاه، لأن أزمنة الميدان على ذلك
الجهاز أمينة فقط برفع الخنق.
حين لا يستطيع PAR2 تغطية
التلف، يكون سجل الاسترداد داخل ملف RAR نفسه خط الدفاع الأخير. حتى 1.0.8 كانت
أداتنا تفشل على أي أرشيف فوق نحو 13 MB، فلم يكن ممكنًا تشغيل هذا الشوط أصلًا.
التلف ثلاث ثقوب بحجم 3,000 بايت عند 20% و50% و80% عبر المنطقة المحمية. أنتجت
كلتا الأداتين ناتجًا مطابقًا بايت لبايت للملف السليم، وناتجنا مطابق بايت لبايت
لما تكتبه rar r نفسها. أفضل ثلاث، مكتب ذو 32 نواة، أُعيد سباق
الأداتين معًا في 2 أغسطس.
| 16 MB | 32 MB | 128 MB | 512 MB | 2 GB | |
|---|---|---|---|---|---|
| nzbfast | 0.049 | 0.059 | 0.130 | 0.400 | 1.527 |
| rar 7.23 repair | 0.278 | 0.466 | 1.065 | 2.291 | 6.400 |
| الأفضلية | 5.7× | 7.9× | 8.2× | 5.7× | 4.2× |
أظهرت نسخة أقدم من هذه الصفحة حجم 512 MB كخسارة، وفسّرتها بثمن السير عبر المجلد على قطع بدل الاحتفاظ به كله في الذاكرة. كان ذلك التفسير صحيحًا حينها وهو الآن متجاوَز: كانت التكلفة CRC64 تسلسلي بت-بت في مسار الإصلاح، استُبدل بآخر يعمل بجدول، وذهبت الخسارة معه. لا تقاطع بعد الآن، واحتُفظ بمجموعة العمل المحدودة. حجم 2 GB موجود هنا لأن المجلدات التي تصادفها الخدمة فعليًا هي 8 GB إلى 20 GB، لا 512 MB، وشوط يتوقّف دون المدى الحقيقي ليس اختبارًا يُذكر.
ما حرّك هذا القصّ، والضابط الذي
يقول ذلك. كان إيجاد الكتل التالفة قد صار أكبر مرحلة في هذا الإصلاح - أكبر
من حساب الإصلاح نفسه - وكان يعمل على خيط واحد، يقرأ 64 KB من كل مجموعة عبر
الملف، مرة لكل مجموعة. يمرّ الآن مرورًا تسلسليًا واحدًا بترتيب الملف مع حساب
المجاميع التحققية لكل شريحة بالتوازي، ويُستنسَخ المجلد المُصلَح بدل نسخه حيثما
يستطيع نظام الملفات فعل ذلك. هبط الاكتشاف وحده من نحو 300 ms إلى 18 ms على
أرشيف 512 MB، وهذا معظم ما تحرّك أعلاه. الضابط هو العمود إلى جانب رقمنا:
أُعيد سباق rar r في الجولات نفسها على الجهاز نفسه وعاد ضمن نسب
مئوية قليلة من أزمنته السابقة، فالتغيّر في الفجوة هو تغيّرنا لا تغيّر المنصة.
يكرّر M5 Max النمط، سُوبِق في 31 يوليو
بالعيّنة والضوابط نفسها: 0.050 / 0.066 / 0.171 / 0.581 s مقابل 0.211 / 0.335 /
0.751 / 1.735 لـrar r عبر الأحجام من 16 MB إلى 512 MB - أسرع بـ3.0×
إلى 5.1×؛ لم يُسابَق حجم 2 GB على ذلك الجهاز. تسبق تلك الأرقام إعادة كتابة
الاكتشاف الموصوفة أعلاه، فهي أرقام البناء الأقدم، محفوظة هنا كالجهاز الثاني لا
كرقم حالي.
غائب rarpar الخاص بـWeaver
عن هذا الجدول وحده، وليس اختيارًا: لا يطبّق هذا الإصلاح. عند مطالبته بإصلاح واحد
من هذه الأرشيفات يجيب "embedded Rar5 recovery record detected ... this API
restores standalone .rev recovery volumes only and does not consume embedded
RR/protect data"، ويترك الملف تالفًا. يظهر في كل مقارنة أخرى في هذه الصفحة:
كل الأشواط الأربعة لـPAR2 أعلاه، وأشكال الاستخراج السبعة قبلها، وشوط مجلدات
الاسترداد أدناه مباشرة، وهو العمل الذي يقول إنه يؤديه - والذي يفوز به.
.rev المفقودة كلهاالنصف الآخر من قصة
استرداد RAR الخاصة، وحتى هذه الجولة كانت أكبر خسارة في هذه الصفحة. ملف
.rev هو مجلد استرداد مستقل: يمكن لثلاثة منها إلى جانب مجموعة من
21 مجلدًا إعادة بناء أي ثلاثة مجلدات لم تصل أبدًا. العيّنة: 1 GiB مخزَّن في 21
مجلدًا بحجم 50 MB بأمر rar rv3، ثم حُذفت المجلدات 4 و11 و19 - ثلاثة
مفقودة مقابل ثلاثة مجلدات استرداد، وهي أسوأ حالة يمكن للمجموعة الصمود أمامها.
أفضل ثلاث، كل مجلد أُعيد بناؤه مقارَن مقابل المجلد السليم.
| مكتب، 32 نواة | مكتب، 20 نواة | |
|---|---|---|
| nzbfast | 0.44 | 0.50 |
rar 7.23 rc | 0.46 | 0.58 |
rarpar restore-volumes | 0.48 | 0.61 |
كانت خلية الـ32 نواة هنا 3.12 s مقابل
0.47 لـrar rc في القصّة السابقة لهذه الصفحة، ونُشرت كأبطأ بـ6.6×
وأسوأ رقم فيها. كان السبب حلّ المحو (erasure solve) يعمل عند نحو 48 MB/s من
الناتج المُعاد بناؤه حيث تدير RARLab 320؛ يعمل الآن على الحساب نفسه القائم على
جدول الذي تستخدمه بقية شيفرة الاسترداد، وهو تحسّن سبعة أضعاف يحوّل الخسارة إلى
فوز على كلا الجهازين. الهامشان 3% و14%، فهو فوز يُذكر ببساطة لا يُصدَّر عنوانًا،
والسبب في ذكره أصلًا أن الخسارة ذُكرت أولًا.
هذا الشوط موجود لأن rarpar
الخاص بـWeaver يطبّق هذا بالضبط وطلب أن يُقاس عليه. كان يفوز بارتياح حين نشرناه
أول مرة، ونشرناه حينها لذلك السبب.
لم تكن مطابقة الملفات التكلفة أبدًا، ويستحق ذلك التسجيل لأنه كان المشتبَه به البديهي: لا تحمل مجلدات الاسترداد أي أسماء ملفات، فنحدّد أي الفتحات نجت بتجزئة كل مجلد على القرص بدل الثقة بما تُسمّى، ومقابل مجموعة غير تالفة، حيث المطابقة هي كل ما يحدث، يستغرق المرور كله 0.18 s.
ما تحرّك أيضًا، وأين لا يظهر. حدث تغييران آخران في المحرّك لا تستطيع هذه العيّنات رؤيتهما، مذكوران هنا كي لا تُقرأ الأرقام أعلاه كالقصة كلها: تحلّ أرشيفات RAR5 ذات عشرات الآلاف من الأعضاء كل عضو مرة واحدة بدل السير في القائمة لكل عامل، وهذا 3× زمن معالج أقل عند 40,000 عضو؛ وقارئ بتّات RAR1.3 يعمل كلمة كاملة في وقت واحد، وهذا 2×. لا يظهر أيّ منهما أعلاه، لأن الأشكال هنا تحمل 400 عضو ولا RAR1.3.
ما لا نفعله عمدًا: لا ننشئ PAR2 أبدًا. لا سبب لبرنامج تنزيل ليفعل ذلك، وParPar يملك ذلك العمل. نشتري السرعة أيضًا بالذاكرة على كلا المحرّكين: يبلغ الاستخراج ذروته حول 240 MB مقابل 41 MB لـunrar، ويبلغ التحقق ذروته حول 126 MB مقابل 7 MB لـturbo، لأن هذين محرّكان مضمَّنان يركبان تنزيلًا حيًّا لا أدوات مستقلة لمرة واحدة. شكل قاموس 128 MiB هو الأسوأ في ذلك، عند نحو 304 MB مقابل 139 MB لـunrar. وأثقل إصلاح يكلّف ذاكرة الآن أيضًا: الطريقة الأسرع لـ512 كتلة مفقودة فأكثر تعمل من بيانات الاسترداد محفوظة مقيمة، فيُسمَح لها بربع ذاكرة الجهاز، بحد أقصى 4 GB، وجهاز لا يملك ذلك يأخذ بهدوء الطريقة منخفضة الذاكرة بدلًا منها - الحساب نفسه والأزمنة نفسها كصفوف PAR2 الوسطى، لكن دون الـ3× في الأخيرة. إن أردت أصغر مجموعة مقيمة ممكنة لمهمة مستقلة، ما زالت الأدوات المخصَّصة تفوز بذلك العمود.
القدرة، لا القياسات الصغرى
| nzbfast | SABnzbd 5 | NZBGet 26 | rustnzb | Weaver | Usenapp | Newsbin | |
|---|---|---|---|---|---|---|---|
| NNTP بأنابيب | نعم | متوقف افتراضيًا | لا | نعم | -⁷ | - | - |
| تحقق كامل أثناء التنزيل | كل كتلة | بعد | فحص سريع | بعد | بعد | بعد | بعد |
| استخراج أثناء التنزيل | ضمن التدفّق، بلا مجلدات على القرص | فك ضغط مباشر⁴ | فك ضغط مباشر⁴ | يُدرِّج ثم يفك الضغط⁵ | لا | لا | لا |
| القرص المطلوب لمنشور بحجم N GB | ~1×N | ~2×N | ~2×N | ~2×N | ~2×N | ~2×N | ~2×N |
| حكم اكتمال قبل التنزيل | دقيق للكتلة | لا | نسبة صحة | لا | -⁷ | فحص المقالة | لا |
| ذاكرة محدودة (بلا مبادلة قط) | مُيزَّنة | إعداد حد ذاكرة تخزين مؤقت | إعداد ذاكرة تخزين مؤقت | لا | لا | - | - |
| يرفع حد الملفات المفتوحة الخاص به | نعم، عند الإقلاع | -⁸ | -⁸ | -⁸ | -⁸ | -⁸ | -⁸ |
| فحص الملف في أي لحظة أثناء التنزيل | نعم | لا | لا | لا | لا | تسلسلي | لا |
| مفهرِس مدمج + جدار ناشرين | نعم، بلا مفتاح | لا | لا | لا | لا | واجهة بحث | متصفّح مجموعات |
| توصيل مباشر مع Sonarr/Radarr | واجهة SAB + Newznab | أصلي | أصلي | واجهة متوافقة مع SAB | RPC متوافق مع NZBGet⁷ | لا | لا |
| تحكّم هاتفي عن بُعد (nzb360/LunaSea) | نعم | نعم | نعم | لا | -⁷ | لا | لا |
| جلب تلقائي لقائمة المتابعة + ترقيات | مدمج | عبر *arr | عبر *arr | لا | لا | Watchdog | قواعد |
| ثنائي مستقل واحد | نعم | حزم تطبيق؛ Python على Linux | نعم | نعم | نعم | .app | .exe |
| مفتوح المصدر | GPL⁶ | GPL | GPL | MIT | نعم | مدفوع | مدفوع |
| المنصات | mac/win/linux (x64 + ARM)/docker/flatpak | mac/win/linux/docker/حزم NAS | mac/win/linux/docker/NAS + مدمج | linux/win (mac من المصدر) | ثنائي mac؛ المصدر في مكان آخر⁷ | mac فقط | win فقط |
⁴ لا يزال فك الضغط المباشر يُجسِّد المجلدات أولًا: كتابتان مضاعَفتان وقرص مضاعَف. ⁵ يسلّم rustnzb 1.4.5 كل عيّنة صحيحة بايت لبايت في جولة 23 أغسطس 2026، وإدخال/إخراج جهازه المقيس هناك نحو 2.1x الحمولة - فهو يُدرِّج المجلدات ويفك الضغط بعد التنزيل بدل الاستخراج ضمن التدفّق (انظر جداول التكلفة). شحنت بُناه الأقدم (1.3.4-1.3.9) مجلدات مموَّهة موسومة بـ"Completed" دون استخراج؛ ذلك الفشل مُصلَح في الجذر عند 1.4.5. ⁶ GPL-3.0-or-later. ⁷ Weaver 0.7.8، أحدث ثنائي منشور، مثبتة هويته بالتجزئة (تتطابق تجزئة sha256 لأرشيف الإصدار المنشور والثنائي داخله مع ما نسابقه)؛ صفوفه المقيسة تأتي من جولة 23 أغسطس للتكلفة، وخلايا قدرته الموسومة بـ"-" هي ميزات لم نُقيِّمها لا غيابًا مؤكَّدًا؛ يتحدّث RPC متوافقًا مع NZBGet، وهو كيف تسوقه منصتنا، لكننا لم نجرّب التحكّم الهاتفي عن بُعد مقابله. Usenapp/Newsbin قارئان تجاريان أحاديّا المنصة بميزات تنزيل؛ مذكوران لأن الناس يسألون، لا لأنهما يتنافسان على السرعة.
⁸ يبدأ macOS برنامجًا بحدّ 256 ملف مفتوح، ويمكن لمجموعة كاملة من الاتصالات عبر عدة خوادم تجاوزه. يرفع nzbfast حدّه الخاص عند الإقلاع على macOS وLinux: يطلب 65,536، ويتنازل خطوة خطوة حتى يوافق النظام، ولا يتجاوز أبدًا حدّ النظام الصلب، ويواصل بما لديه إن رُفضت كل خطوة. لا يملك Windows حدًّا من هذا النوع لكل عملية. الأعمدة الأخرى لم تُقيَّم لا غيابات مؤكَّدة؛ لم نقرأ شيفرة إقلاع أي عميل آخر. يستحق المعرفة بسبب طريقة فشله: برنامج ينفد من الملفات المفتوحة منتصف مهمة يميل إلى الاختفاء بدل الإبلاغ عن خطأ.
إثبات النقل · قيست على 1.2.2
حملت قصّات أقدم من هذه الصفحة مجموعة أوسع من إثباتات النقل - تشغيلات إشباع متعددة الخطوط، ومكاسب أنابيب لكل RTT، وإثبات ضغط عكسي، وقياسات سقف فكّ التشفير - سُوبِقت على بُنى تجاوزها v1.2.2 منذ ذلك الحين. بموجب قاعدة هذه الصفحة تُسحَب بدل أن تُترك تشيخ، وتعود عند إعادة قصّها على الإصدار الحالي؛ الادعاءات الثلاثة أعلاه هي ما أُعيد قياسه بالفعل على v1.2.2.