בדיקות ביצועים

חמישה קליינטים, חומרה וספקים זהים, הרצות משולבות כך שסחיפת הספק מתקזזת. המדד הוא זמן לקובץ שמיש - מורד, מאומת, מחולץ - נמדד לצד הדיסק, השטח הפנוי והזיכרון שהמשימה עולה לכם. כל טבלה מציינת את הגרסאות שמולן רצה ואת היום שבו רצה. כולל את המקטעים שבהם איננו מנצחים.

בדף הזה

הגרסה הקצרה · נמדד 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 מהמתחרה הקרוב ביותר.

מי מכם זה?

NAS, מיני מחשב, או שרת בית קטן. ‏nzbfast החזיק 143 MB זיכרון במשימה שבה המתחרה הקרוב ביותר החזיק 531 MB והכבד ביותר 1.6 GB, מסיים עם כ-50 MB שטח פנוי לרזרבה שבו קליינטים אחרים צריכים כפול מכך פנוי בערך, וסולם הזיכרון הנמוך הכניס משימה של 87 GB לדיסק ב-286 MB של RAM בברירות המחדל שנשלחות. ומכיוון שהוא מזיז כל בייט על פני הדיסק שלכם פעם אחת בערך, כונן NAS יכול לעמוד בקצב קו שהיה מציף אותו תחת קליינט דו-מעברי. ראו טבלאות העלות, שטח פנוי ו- תקרת מהירות הדיסק.
סיבים אופטיים בגיגה-ביט. המשימה מסתיימת כשמד ההורדה מתמלא, לא דקות אחר כך: האימות והחילוץ רוכבים על ההורדה, החיבור שלכם אף פעם לא נח לאורך תור שלם, והדיסק שלכם רואה בערך חצי מהבייטים. ראו טבלאות העלות ו-סבב הפוסט הפגום.
קו מרובה-גיגה-ביט או 10 GbE. המנוע מחזיק כ-8.7 Gbps מתהליך אחד כשהאימות והחילוץ רוכבים על ההורדה, וחשבון הדיסק נושך ראשון: קליינט שמזיז כל בייט על פני הדיסק פעמיים או שלוש פעמים צריך דיסק מהיר פי שניים או שלושה מהקו שלכם לפני שהקו עצמו הופך למגבלה. ראו סבב ה-87 GB ו-תקרת מהירות הדיסק.
קו איטי יותר או משותף (250-500 Mbit). נמדד 24 באוגוסט 2026 בשני הקצבים: nzbfast סיים ראשון ואף קליינט אחר לא ניצח אותו באף משאב שאנחנו מודדים - ב-500 Mbit הוא רץ בכ-96% מהקו לאורך האימות והחילוץ, 14.7% נקי מהמתחרה הקרוב ביותר. קו צנוע הוא המקום שבו הבזבוז ניכר ביותר, ושבו הקליינט הקל ביותר עוזר הכי הרבה. ראו מדרגות הקו האיטי יותר.

רוב הקליינטים כותבים את ההורדה שלכם לדיסק לפחות פעמיים: פעם אחת בזמן ההורדה, ופעם נוספת בזמן הפריקה. ‏nzbfast עושה את כל המשימה במעבר אחד, כך שהוא כותב בערך חצי מהבייטים למשימה, מחזיק פחות בזיכרון בזמן העבודה, ומוציא פחות שניות מעבד לכל GB. זה פחות עומס על המכונה בזמן שאתם משתמשים בה וחצי מהכתיבות למשימה על הכוננים שלכם, לאותם קבצים זהים בית-בית - ומכיוון שכל בייט חוצה את הדיסק פעם אחת בערך, הכונן שלכם צריך לעמוד בקצב הקו שלכם רק פעם אחת.

‏nzbfast לא מנצח בכל טבלה בעמוד הזה, והמקטעים שבהם הוא מפסיד נמצאים תחת המקטעים שבהם איננו מנצחים - כולל אחד מאותו סבב עצמו. מה שהחזיק בכל סבב שמדדנו הוא החשבון המשולב.

קודם המתודולוגיה

המערך

הסבב מ-23 באוגוסט 2026

מה משימה עולה: כל קליינט עדכני, לילה אחד, מכונה אחת

שש זרועות על מכונת Apple Silicon עם 20 ליבות על קו של 1 Gbit: nzbfast בברירות המחדל שנשלחות, אותו בינארי עם וסת החיבורים שלו כבוי, והבניות העדכניות של ארבעת הקליינטים האחרים. חמישה ספקים, TLS בכל מקום, שלוש חזרות לכל קליינט לכל תרחיש כשהסדר מסתובב בתוך כל סבב, והפלט של כל מקטע נבדק בית-בית: 36 מתוך 36 מקטעים הפיקו את המטען המדויק. ב-1 Gbit הקו קובע את הקצב וזמני הסיום מתכנסים מעצם התכנון, כך שעמודת הזמן נמצאת שם כדי להראות את ההתכנסות הזו; עמודות המשאבים הן מה שהסבב קיים כדי למדוד.

חוגה אחת חשובה, והיא מוצהרת ולא קבורה: ברירות המחדל שנשלחות כוללות כעת וסת חיבורים מודע-קו, ועל הקו הזה הוא החזיק 25 חיבורים בזמן שכל קליינט אחר הריץ את המאות המוגדרות שלו. השורה "וסת כבוי" חוגה את אותם 360 סוקטים שהסבבים הישנים יותר שלנו השתמשו בהם, כך ששתי ההשוואות נשארות זמינות: המוצר כפי שקורא מקבל אותו, והניסוי ההיסטורי.

פרסום בעל שם של 6.5 GB, חילוץ בנתיבזמן לקובץ שמיששיא זיכרון (RSS)זמן מעבדקלט/פלט לדיסק (GiB)קו (GB)
nzbfast, ברירת מחדל (25 חיבורים)58 s143 MB35.7 s6.26.5
nzbfast, וסת כבוי (360)60 s583 MB38.0 s6.16.6
NZBGet 26.3-testing61 s801 MB40.1 s12.56.5
SABnzbd 5.1.163 s1,588 MB69.5 s13.86.5
rustnzb 1.4.567 s628 MB61.9 s13.47.2
Weaver 0.7.8110 s531 MB34.9 s¹12.56.5
פרסום מעורפל של 34 GBזמן לקובץ שמיששיא זיכרון (RSS)זמן מעבדקלט/פלט לדיסק (GiB)קו (GB)
nzbfast, ברירת מחדל (25 חיבורים)302 s191 MB194.0 s32.534.4
nzbfast, וסת כבוי (360)302 s465 MB205.4 s32.934.4
NZBGet 26.3-testing306 s900 MB221.3 s68.134.4
SABnzbd 5.1.1308 s1,607 MB356.5 s72.534.4
rustnzb 1.4.5343 s445 MB332.6 s69.837.8
Weaver 0.7.8511 s1,076 MB373.8 s98.034.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.20 מהתוכנית המינימלית בשתי הצורות כאלה שהצלחנו לבנות. תאי ה-7.2 וה-37.8 GB של rustnzb הם עודף משלו, עם אזהרה ביומן שלו בשני מקטעים.

מה שעמודת הזיכרון אומרת בברירות המחדל: הוסת הוא רוב הסיבה לכך שהשורה הנשלחת מחזיקה 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 s142 MB45.4 s6.2
nzbfast 1.2.2, וסת כבוי115 s592 MB59.0 s6.2
SABnzbd 5.1.1125 s1,665 MB99.2 s14.2
rustnzb 1.4.5131 s626 MB92.6 s14.5
Weaver 0.7.8138 s564 MB48.5 s12.4
NZBGet 26.3-testing145 s¹846 MB64.3 s13.2
קו 250 Mbit, אותו פרסוםזמן לקובץ שמיששיא זיכרון (RSS)זמן מעבדקלט/פלט לדיסק (GiB)
nzbfast, ברירת מחדל217 s144 MB53.3 s6.2
nzbfast, וסת כבוי219 s651 MB67.9 s6.2
NZBGet 26.3-testing227 s826 MB78.4 s13.3
SABnzbd 5.1.1230 s1,667 MB162.4 s15.2
Weaver 0.7.8230 s789 MB62.0 s12.9
rustnzb 1.4.5256 s644 MB122.4 s15.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 עם 20 ליבות שהקו שלה עוצב לכל קצב (הקצב המעוצב אומת בבדיקה עצמאית לפני כל סבב: 248 ו-496 Mbit). זרוע ה-nzbfast ב-500 Mbit היא בניית תגית השחרור v1.2.2; הסבב ב-250 Mbit רץ שעות קודם לכן על אותה שורת קוד. ספירת הבייטים על קו מעוצב נקראת ממונה הקליינט עצמו, לעולם לא מממשק הרשת (המעצב זורק ו-TCP שולח מחדש, כך שהממשק סופר את שני העותקים). הזמנים ברי-השוואה בתוך כל טבלה, לא בין סבבים מעוצבים באופן שונה. ¹ שלושת המקטעים של NZBGet ב-500 Mbit נעו בין 114-158 s עם קריאות משאבים שטוחות - פיזור אמיתי, כך שהחציון מצוטט והפיזור מוצהר במקום לצמצם אותו.

הקובץ הגדול · נמדד 24 באוגוסט 2026 על nzbfast 1.2.2

פרסום של 87 GB לקובץ שמיש של 77 GB, ב-10 GbE

הקצה השני של סיפור קצב הקו: מכונת 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 s415 MB144 s72.977.2
nzbfast 1.2.2, וסת החיבורים דלוק (25)90 s336 MB130.5 s72.977.4
NZBGet 26.3-testing93 s1,195 MB443 s183.777.2
SABnzbd 5.1.1113 s1,910 MB234 s235.177.2
Weaver 0.7.8645 s1,825 MB631 s435.1²77.3
rustnzb 1.4.5869 s³681 MB2,444 s216.186.9

סיפור הדיסק בקנה המידה הגדול ביותר עד כה. שיא הדיסק שלנו במהלך המשימה הוא 70.8 GiB - מתחת לפלט של 76.6 GB, כי הזנב של המטען עדיין מגיע בזמן שהראש כבר סופי - וסך קלט/פלט הדיסק הוא פי 1.00 מהמטען. המתחרים מזיזים פי 2.5 עד פי 6.0 מהבייטים לאותו קובץ. והזרוע המהירה ביותר מחזיקה כ-8.7 Gbps כולל אימות וחילוץ בזרם; ברגע שמד ההורדה מתמלא, הקובץ מוכן.

¹ כל קליינט בעמוד הזה מתחרה בהגדרות הטובות ביותר המתועדות שלו, ובקו 10 GbE שלנו זה 50 חיבורים בסך הכול - 10 לכל שרת, חוגה שכל דרגת חשבון מגיעה אליה - אותו כיוונון בהגדרה אחת שאנחנו נותנים לכל מתחרה (SABnzbd את הצנרת שלו, NZBGet את מטמון המאמרים שלו). חמישים אינו נכות: סריקה של שש מדרגות על אותו תרחיש מצאה את התקרה זהה מ-50 חיבורים עד למקסימום החשבון של 360, בזמן שעלות המעבד עולה פי 2.3 לאורך הטווח הזה בלי כלום, כך שהמקסימום לא קונה שום דבר שהטבלה הזו הייתה מראה. שורת 50 החיבורים נמדדה אז מחדש באיכות מלאה של שלוש חזרות באותו יום, על אותה מכונה, מול אותו צ'קסום פלט: 70 / 70 / 70 s, כל השלושה נבדקו בית-בית. שורת הוסת נמצאת כאן כי היא המעניינת יותר: בכל קצב עד גיגה-ביט 25 החיבורים שלה חינם-עד-מהיר-יותר, ואפילו כאן, שבו הם עולים בערך חמישית מהזמן, הם קונים 336 מול 415 MB זיכרון ו-130 מול 144 שניות-מעבד. כיוונון הוסת אוטומטית לפי קצב הקו - כך שההתנהגות הטובה ביותר היא גם ברירת המחדל, בברך ולא במקסימום - נמצא בתור לגרסה הבאה. ² ה-435 GiB של קלט/פלט הדיסק של Weaver להורדה של 77 GB הם אחסון המוצפן-במנוחה שלו קורא וכותב מחדש כמעט הכול ככל שהמשימה גדלה - הדפוס העל-ליניארי שהסבבים המכשירים שלנו ביולי מדדו, עדיין נוכח בבנייה הנוכחית. ³ ‏rustnzb 1.4.5 מסיים נכון בית-בית והעלות שלו היא זמן מעבד וקו: כ-2,444 שניות-מעבד מול שעון של 869 s לאורך כל שלוש החזרות, ו-86.9 GB שנמשכו במקום שהתוכנית הלהוטה היא 77.2 (הוא מושך את מערך השחזור המלא ללא תנאי). נמדד 24 באוגוסט 2026, חציונים של שלוש, כל בנייה עדכנית; חזרה 3 בשלוש הזרועות המהירות ביותר רצה כ-40 דקות אחרי השאר (שומר שטח פנוי השהה את הסבב; ההיסט לא הזיז אף חציון ביותר מפיזור החזרות).

מאז הסבב הזה, שורת הווסת נעקפה על ידי מה ש-1.2.3 מספקת. נמדד ב-26 באוגוסט 2026 על אותו תרחיש, אותה מכונה ואותו קו 10 GbE, שישה מקטעים נכונים בית-בית מול סכימת הביקורת של הטבלה הזו: 71 s בברירת המחדל, 322 MB ו-139.3 שניות מעבד, מול 90 s שלמעלה. זה היה סבב של nzbfast בלבד על בנייה מאוחרת יותר, ולכן הוא נאמר כאן במקום להתחרות בטבלה: כל שורה למעלה עומדת כפי שנמדדה ב-24 באוגוסט.

אותם 87 GB על Windows טבעי, מול הדגל המסחרי

הקליינט המסחרי הראשון בעמוד הזה: Newsbin Pro, הקליינט המשולם הוותיק ביותר ל-Windows, מתחרה מול הבנייה הרשמית שלנו ל-Windows על מכונת Windows טבעית עם 10 GbE שכונן המערכת שלה מסוג TLC מחזיק 0.99 GB/s של כתיבות - הדיסק האיטי ביותר בצי הבדיקה שלנו, מה שהופך אותו למקום ההוגן להריץ בו קליינט דו-שלבי. אותו פרסום של 87 GB, שלוש חזרות משולבות, הפלט של כל מקטע נבדק בית-בית מול אותו צ'קסום כמו בטבלה שלמעלה: 6 מתוך 6 זהים.

פרסום של 87 GB, Windows, דיסק TLCזמן לקובץ שמיששיא זיכרון (RSS)זמן מעבדקלט/פלט לדיסק (GiB)קו (GB)
nzbfast 1.2.2 (50 חיבורים)105 s469 MB154 s84.576.7
Newsbin Pro 6.90 (360 חיבורים)477 s881 MB1,862 s154.176.7

נמדד 24 באוגוסט 2026, חציונים של שלוש, שני הקליינטים עדכניים. Newsbin רץ במקסימום החיבורים המוגדר לכל שרת שלו עצמו - 360 סוקטים מול ה-50 שלנו - והזמנים שלו לא כוללים את 90 שניות ההתייצבות שהמתקן שלנו מחכה לפני שהוא מכריז שקליינט מנוטר סיים, כך שההשוואה נוטה לכיוונו פעמיים והתוצאה עומדת בכל זאת: פי 4.5 בשעון, פי 12 בשניות-מעבד, ופי 1.9 בזיכרון לאותו קובץ זהה. אף צד לא מוגבל-דיסק כאן - הזרוע החד-מעברית צריכה כ-0.73 GB/s מתוך ה-0.99 של הכונן, ו-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 GB29%94%2%
5-20 GB39%97%2%
20-60 GB20%67%33%
מעל 60 GB12%51%49%

הורדות רגילות הן כמעט תמיד ארכיונים מאוחסנים פשוטים. הגדולות הן הטלת מטבע בין מאוחסן למוצפן. הצורה המאוחסנת היא מה שכל טבלה נוכחית בעמוד הזה מריצה; סיפור הדיסק של הצורה המוצפנת נמדד במדור שלה למטה.

הפוסט הפגום · הורץ מחדש 24 באוגוסט 2026, כל בנייה עדכנית

כשיש חורים בפרסום: 6.5 GB עם 60, 20 ו-5 מאמרות מתות

מאמרות פגות, שרתים משמיטים אותן בשקט, העלאות נוחתות באופן חלקי - והנזק הוא המקום שבו הפער בין הקליינטים הרחב ביותר, ולכן הוא מקבל סבב משלו על הבנייה החדשה ביותר של כל קליינט, nzbfast v1.2.2 כלול: מכונת אירופה 10 GbE, חמישה ספקים, 100 חיבורים לכל קליינט, אותו פרסום של 6.5 GB מורעל בשלוש רמות נזק, שלוש חזרות לכל זרוע כשהסדר מתחלף, כל מקטע נבדק בית-בית מול הקובץ הנקי. 63 מתוך 65 מקטעים חזרו זהים בית-בית; השניים שלא, שמם מוזכר למטה, כי הם תוצאות.

זמן לקובץ מאומת ושמיש (ממוצע של 3)60 מאמרות מתות20 מתות5 מתות
nzbfast 1.2.213.0 s10.0 s8.7 s
nzbfast 1.2.2, תיקון מוקדם כבוי29.3 s19.0 s12.3 s
NZBGet 26.3-testing33.0 s23.7 s23.0 s
SABnzbd 5.1.148.0 s¹28.0 s24.3 s
rustnzb 1.4.5107.3 s²51.3 s47.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 ב-~0.3 GB של RAM

אותה משימה של 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 s87 s94 s102 s
שיא זיכרון (RSS)286 MB558 MB336 MB284 MB
קלט/פלט לדיסק (GiB)73.273.272.872.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.10) כדי לקנות קיצוץ של 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.1 מהמטען~פי 2.1 (37.6 GB מעל הפלט)
SABnzbd 5.1.1~פי 2.1 מהמטען~פי 2.1 (37.6 GB מעל הפלט)
rustnzb 1.4.5~פי 2.25 מהמטען~פי 2.25 (42.7 GB מעל הפלט)
Weaver 0.7.8~פי 2.25 מהמטען~פי 2.25 (42.7 GB מעל הפלט)¹

נמדד על מכונת Apple Silicon עם 20 ליבות, קו 1 Gbit, חמישה ספקים, שלוש חזרות בכל גבול, כל מקטע שהושלם נבדק בית-בית - שורות המתחרים ב-22-23 באוגוסט 2026 (התא של 34 GB של Weaver הורץ מחדש ב-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.25, כל אחד מהם מהיר יותר מהמקטע הטוב של הניסיון הראשון, על שטח פנוי זהה עד לבית. בניסיון הראשון, ב-23 באוגוסט, שניים משלושת המקטעים שלו נתקעו במהירות של ספרה בודדת MB/s עם יותר מ-60 GB עדיין פנויים ופגעו במגבלת 40 הדקות של הסבב. התקיעות האלה לא חזרו, ומדידת התקיעות של המתקן הייתה פרוסה ושקטה בכל שלושת מקטעי ההרצה החוזרת, וזו מדידה חיובית ולא היעדר מדידה. מה גרם להן עדיין לא ידוע, והרצה חוזרת נקייה אינה אבחנה: כיום קיימים שישה מקטעים ביחס הזה, ארבעה מהם הושלמו, ושני הכשלים מגיעים מחלון אחד של 80 דקות בלילה הראשון.

התוצאה של המכפיל

הדיסק שלכם קובע את תקרת המהירות שלכם

לכל כונן, קצב הקו שהוא יכול להחזיק לאורך הורדה, אימות ופריקה הוא הקצב האמיתי של הכונן חלקי מכפיל הקלט/פלט של הקליינט. טבלאות העלות שלמעלה מודדות את שלנו בכ-פי 1.0 - כל בייט חוצה את הדיסק פעם אחת בערך - וכל מתחרה בפי 2.0 עד פי 3.0 לפלט זהה בית-בית. אז אותו כונן מחזיק פי שניים עד פי שלושה מקצב הקו תחת nzbfast ממה שהוא היה מחזיק תחת קליינט דו-שלבי. החשבון, כשהמכפילים לקוחים מהטבלאות הנמדדות שלמעלה:

קוקצב המטעןדיסק נדרש ב-~פי 1.0 שלנובפי 2.2בפי 3.0
100 Mbit12.5 MB/s~13 MB/s~28 MB/s~38 MB/s
1 Gbit125 MB/s~130 MB/s~275 MB/s~375 MB/s
5 Gbit625 MB/s~650 MB/s~1,400 MB/s~1,900 MB/s
10 Gbit1.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.0 במחלקה האיטית ביותר, מה שאנחנו אומרים בגלוי, ומחוץ להישג יד בפי 2-3. כונן בסיבוב 7200 סל"ד מחזיק בערך 160-220 MB/s. ה-~550 MB/s של SSD מסוג SATA מגביל קליינט בפי 2.2 לקרוב ל-2 Gbit ונושא כ-3.5-4 Gbit בפי 1.0. כונני SMR, שנמכרים לתוך תושבות NAS שנים רבות, הם המקרה הגרוע ביותר עבור דפוס הדו-שלביות בפרט: כתיבה מתמשכת עם קריאה-חזרה יכולה לקרוס לעשרות MB/s ברגע שמטמון ה-reshingling של הכונן מתרוקן. וקו מרובה-גיגה הוא אותה חומה גבוה יותר: 10 Gbit במכפיל פי 2-3 דורש 2.75-3.75 GB/s מתמשכים, מעבר לכל כונן SATA ומעבר לכוננים רבים מסוג NVMe ברגע שמשימה גדולה עוקפת את אזור המטמון המהיר שלהם, בזמן שבפי 1.0 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.03, ודפוס הדו-שלביות לקח 47-48% בפי 3.02 נמדד - היחס קבוע לאורך ההגבלות, וזה החשבון שלמעלה משוחזר כמדידה. 32 מקטעים, כל פלט נבדק בית-בית.

ופעם אחת על חומרה אמיתית, לא מוגבלת. הכונן האיטי ביותר בצי הבדיקה שלנו הוא דיסק מערכת מסוג TLC על מכונת Windows טבעית עם 10 GbE, מחזיק 0.99 GB/s של כתיבות שבו המכונה המהירה ביותר שלנו מחזיקה 5.97. סבב ה-Windows של 87 GB שלמעלה רץ עליו: הזרוע החד-מעברית הזדקקה לכ-0.73 GB/s מתוך ה-0.99 כדי להחזיק 105 s של זמן - רזרבה לפזר על הדיסק הגרוע ביותר בצי - וזה התא הימני-עליון של הטבלה שלמעלה נוחת על כונן אמיתי במקום מוגבל. והקצה המהיר של הצי סוגר את הטיעון מהצד השני: אותה משימה של 87 GB, בקצב מלא ב-10 GbE, מסתיימת באותן 70-71 שניות על כונן של 1.24 GB/s ועל כונן של 5.97 GB/s - כונן מהיר פי 4.8 מזיז את הזמן באפס, כי במכפיל פי 1.0 הקו נגמר הרבה לפני שהדיסק נגמר. עבור קליינט דו-שלבי שני הכוננים האלה הם עולמות שונים.

מה המתקן הזה הוא, ומה הוא אינו. הדיסק הוגבל עם בקר קלט/פלט של מערכת ההפעלה בתוך מכונה וירטואלית על מכונת Apple Silicon עם 32 ליבות, וזרוע הדו-שלביות היא הבינארי שלנו עצמו שנעשה לכתוב, לקרוא-חזרה ולכתוב מחדש בדרך שבה קליינט דו-שלבי עושה. אף מתחרה לא רץ בו - הקו המדומה של המתקן מגיש קבצים פשוטים שמתחרה גם היה מטפל בהם במעבר אחד, כך שהפניית אחד אליו לא הייתה מדגימה שום דבר - מה שאומר שהטבלה שלמעלה היא חשבון מעוגן בזוג אחד נמדד, כשהמכפילים של המתחרים לקוחים מהטבלאות האמיתיות של חמשת הקליינטים שלמעלה, ואנחנו מתייגים אותה כך בכוונה. שלוש הערות יושר מתלוות אליה. הבקר מתקצב קריאות וכתיבות בנפרד, מה שמחמיא לזרוע הדו-שלבית; על התקן בעל תקציב יחיד, שהוא כל דיסק מסתובב, החלק שלה היה נמוך עוד יותר. מכפיל הדו-שלביות הוא כ-פי 2 כשהכרכים עדיין במטמון העמודים בזמן הקריאה-חזרה ופי 3 כשלא, כך שמשימה גדולה על מכונה רגילה יושבת בקצה הפי 3. ועלות החיפוש של כתיבה, קריאה-חזרה ומחיקה של מאות קבצי כרך - מול קובץ אחד שנכתב פעם אחת בסדר - היא טיעון מצורת התעבורה, לא מדידה עדיין: היא צריכה דיסק מסתובב, ואנחנו מצטטים אותה כטיעון עד שיהיה לה אחד.

צורה שנייה · הטלת המטבע של הפרסום הגדול

ארכיונים מוצפנים: מעבר אחד, כמו כל השאר

חצי מכל מה שמתפרסם מעל 60 GB הוא ארכיון מוצפן, וזו הצורה שבה קליינטים דו-שלביים משלמים הכי הרבה: הנתונים הנעולים צריכים להיכתב החוצה, להיקרא חזרה, להיפתח ולהיכתב שוב. ‏nzbfast פותח כל חלק עם הגעתו, כך שהנתונים הנעולים אף פעם לא מגיעים לדיסק בכלל. נמדד על פרסום מוצפן אמיתי של 94 GB:

פרסום מוצפן של 94 GB, מעבר אחדנמדד
נכתב לדיסק90.1 GB - בערך המטען, פעם אחת
הכי הרבה דיסק בשימוש בו-זמנית89.6 GB - קובץ הפלט עצמו
השהיה אחרי ההורדה0.6 s

הכי הרבה דיסק בשימוש בו-זמנית הוא גודל הקובץ שביקשתם. אין רגע במהלך הורדה מוצפנת שבו nzbfast צריך מקום לעותק שני, ואין מעבר פתיחה אחרי שמד ההורדה מתמלא - קליינט דו-שלבי משלם בערך כפול בשלוש השורות האלה, וזה אותו פי 2 שטבלאות העלות שלמעלה מודדות בכל צורה אחרת.

הצורה שלה

דיסק בשימוש במהלך הורדה מוצפנת אחת של 94 GB. דפוס הדו-שלביות והקו החד-מעברי עוקבים זה אחר זה בדיוק עד שההורדה מסתיימת, ואז הדפוס הדו-שלבי קופץ ל-166 GB בזמן שהקו החד-מעברי נשאר שטוח על 90 GB.

דיסק בשימוש במהלך הורדה אחת, נדגם כל חמש שניות. הקו השטוח הוא nzbfast; הקו שמטפס ל-166 GB בסוף הוא דפוס הכתיבה-החוצה-ואז-פתיחה, משלם עבור הקובץ המוגמר בזמן שהעותק הנעול עדיין על הדיסק - נמדד על ידי הרצת שני הדפוסים על אותו פרסום.

פרסומים מקוננים · נמדד ב-28 באוגוסט 2026

עשר דרכים לעטוף פרסום, ומי באמת מגיע אל הקובץ

חלק גדול ממה שמתפרסם קשה לפתיחה במכוון. שם הקובץ האמיתי קבור בתוך ארכיון שני, לפעמים שלישי, לפעמים בפורמט אחר בכל רובד, כדי שהפרסום יסגיר כמה שפחות על מה שהוא מכיל. על כך מתווסף שפרסומים מגיעים פגומים: מאמרים פגים, העלאות נוחתות חלקיות, ויש להשתמש בנתוני השחזור לפני שאפשר לחלץ משהו בכלל. תוכנת הורדה או שעוברת את השרשרת הזו עבורכם, או שהיא מוסרת לכם תיקייה מלאת ארכיונים ועוצרת.

לכן בנינו עשר צורות שמבודדות בדיוק את זה, העמדנו מולן כל תוכנה עדכנית, ואז עשינו את מה שהשוואות בדרך כלל מדלגות עליו: היכן שתוכנה עצרה מוקדם, סיימנו את העבודה ידנית בכלים הסטנדרטיים ומדדנו גם את הזמן הזה. תוכנה שמוותרת מהר נראית מהירה עד שסופרים את העבודה שהיא משאירה לכם.

עשר צורות עטופות ופגומותסיימה בעצמהרק לאחר תיקון ידנילא הגיעה לקובץ מעולם
NZBGet 26.32 מתוך 1080
SABnzbd 5.1.25 מתוך 1032
nzbfast 1.2.410 מתוך 1000
rustnzb 1.4.57 מתוך 1012
Weaver 0.7.81 מתוך 1018

nzbfast היא היחידה שמסיימת את כל העשר בלי עזרה. גם NZBGet מגיעה אל הקובץ בכל צורה, אך נדרשות לה 16 סבבים של תיקון וחילוץ ידניים בשמונה מהן. SABnzbd מסיימת חמש בכוחות עצמה, ושתיים נותרות בלתי נגישות אפילו ידנית. Weaver מגיעה אל הקובץ בשתיים.

התבנית אינה מקרית. הצורות ש-nzbfast עוברת והאחרות לא הן העטופות והפגומות: ארכיון בתוך ארכיון, החלפת פורמט באמצע השרשרת, שרשרת בת חמישה רבדים, ומעל הכול ארכיון שמגיע פגום ולצדו נתוני השחזור שלו עצמו. באחרונה, ארבע תוכנות מחלצות את המערך החיצוני בצורה מושלמת, מוסרות לכם את הארכיון הפגום יחד עם מערך השחזור שהיה מתקן אותו, ועוצרות.

היכן שהתוכנות משלימות את אותה עבודה, הפער אינו קטן. אלה שבע הצורות שכל ארבע התוכנות הנפוצות מגיעות אליהן, כולל התיקון הידני שכל אחת נזקקה לו:

שבע הצורות שכל הארבע מגיעות אליהןזמן עד קובץ שמישנכתב לדיסק
NZBGet 26.351.2 s29.83 GB
SABnzbd 5.1.252.3 s32.27 GB
nzbfast 1.2.410.3 s11.68 GB
rustnzb 1.4.541.8 s27.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 מול המקור, וכל קובץ מתוקן מול המערך הטהור.

4 מכונות, לפטופ עד 32 ליבות 7 צורות ארכיון RAR 6 מחלצים בתחרות 1 GB מטען לכל צורה הטוב מבין 3 משולב, מטמון חם

חילוץ RAR: 7 צורות ארכיון, 6 כלים

הסבב הקודם של הטבלה הזו השתמש ב-100 MB עד 200 MB לכל צורה, וזו הייתה טעות: כ-28 ms של הפעלת תהליך היו 40% ממקטע ה-store, והסדר שהם הפיקו לא שורד בגודל ריאלי. הסבב הזה הוא 1 GB מטען לכל צורה, וזה משנה כמה תשובות, כולל כמה בכיוון ההפוך. הארכיונים נוצרים על ידי rar 7.23 הרשמי, כך ששום כלי לא נשפט על קלט מהמקודד שלו עצמו, ואותם בייטים מתחרים על כל מכונה.

מה שיש במטען חשוב יותר משזה נראה. מטען בנוי מעותקי בלוקים הופך כל צורה דחוסה למבחן העתקת-זיכרון; מטען של טקסט טהור הופך אותו למבחן ליטרלים-והפמן; מדדנו את שניהם והם לא מסכימים מי מנצח. אז ארבע הצורות הדחוסות משתמשות בשלישים שווים של טקסט, רשומות מובנות ובייטים בלתי-דחיסים, ושתי הצורות בקצוות הטווח הזה הן מקטעים נפרדים בכוונה: store אינו דחיס ו-repetitive הוא כמעט כולו התאמות. הבונה והמתקן נמצאים במאגר, כך שאפשר לבנות מחדש את הקורפוס בית לבית.

הורץ מחדש 23 באוגוסט 2026 על המנוע 1.2.2, והסקירה עומדת. שלושת הכלים ששוקל קורא הכי הרבה - שלנו, ‏unrar 7.23 ו-rarpar 0.2.5 - הורצו מחדש על שולחן העבודה עם 32 הליבות על מנוע השחרור (קוד החילוץ שהתחרה זהה בית-בית לתגית 1.2.2), שישה סבבים משולבים, מינימום לכל כלי, הפלט של כל מקטע נבדק מול מניפסט המטען. שניות, נמוך יותר טוב יותר:

מטען של 1 GB, 32 ליבות (23 באוגוסט 2026)store400 קבצים קטניםsolidrepetitiveגדול, 3 כרכיםמוצפןמילון 128 MiB
nzbfast 1.2.20.1190.4741.5150.1201.1181.1371.146
unrar 7.230.1902.0321.7840.1391.6551.8461.420
rarpar 0.2.50.2062.5632.3950.2371.8521.8571.725

כל שבע הצורות שלנו, במינימום ובחציון, פי 1.16 עד פי 4.29 מול unrar. הזמנים האלה לא ברי-השוואה תא-לתא עם הטבלה הרחבה יותר למטה - המתקן עודכן מאז הסבבים של אותה טבלה ומספרי הסבבים שונים - כך שכל טבלה נקראת מול עצמה. הטבלה הרחבה שומרת על התאריכים שלה עצמה ועל שדה ששת הכלים שלה, ועמודת ה-nzbfast שלה מתארת את המנוע ש-1.2.2 שולח: המרוץ החוזר שלמעלה מדד את רמת המנוע הנוכחית מול הבנייה של אותה טבלה על כל שבע הצורות, הוכרע לפי ספירת פקודות חומרה (0.14% פחות לאותו זמן), כך שהתאים האלה אינם מספרים של בנייה שהוחלפה עם תווית עדכנית. המרוץ החוזר הזה הוא גם המקום שבו כלל ה-A/A במדור המערך הרוויח את מקומו. מעבר של אותו יום דיווח לראשונה על צורה אחת כנסיגה קטנה מול הבנייה הקודמת שלנו עצמנו, והקריאה שרדה הרצה של שני סדרי הזרועות. בקרת A/A - אותו בינארי מתחרה מול עותק זהה-בית של עצמו - הראתה את המתקן נותן לזרוע שרצה ראשונה קנס של כ-1.5%: הבינארי הזהה ניצח רק 6 מתוך 15 סבבים מהמשבצת הראשונה, והחלפת סדר לא מבטלת הטיה שנוחתת תמיד על מי שראשון. ספירות פקודות החומרה הכריעו את השאלה שהמתקן לא יכול: הבנייה החדשה יותר מוציאה לפועל 0.14% פחות פקודות לאותו שעון קיר, כך שלא הייתה נסיגה. כל השוואת בנייה-שלנו-מול-בנייה-שלנו שאנחנו מפרסמים עכשיו נושאת את הבקרה הזו.

כל השדה, שניות, נמוך יותר טוב יותר. הטוב מבין שלוש, הכלים משולבים בתוך כל סבב במקום לרוץ בבלוקים, הפלט נבדק מול מטען המקור בכל הרצה בודדת. כלי שהפיק בייטים שגויים מקבל הערת נכונות, אף פעם לא זמן מהיר. rarpar הוא קוד ה-RAR וה-PAR2 של Weaver עצמה, נבנה מהמקור ב-bd87611; אנחנו מצמידים את ה-commit ולא גרסה כי החבילות (crates) שלו נושאות שלושה מספרי גרסה שונים.

שניות, 1 GB לכל צורהstore400 קבצים קטניםsolidrepetitiveגדול, 4 כרכיםמוצפןמילון 128 MiB
שולחן עבודה high-end, 32 ליבות
nzbfast0.210.471.260.141.081.091.07
unrar 7.230.212.021.620.161.611.821.37
rarpar0.232.552.220.261.751.741.64
unar 1.10.70.606.405.290.695.416.884.03
bsdtar0.3413.6711.481.86פלט שגוי²אין הצפנה³אין מילון גדול⁴
7-Zip0.30לא נתמך¹לא נתמך¹לא נתמך¹לא נתמך¹לא נתמך¹לא נתמך¹
שולחן עבודה ישן יותר, 20 ליבות
nzbfast0.160.571.830.151.501.511.40
unrar 7.230.252.482.310.202.282.491.84
rarpar0.283.153.000.312.262.261.97
unar 1.10.70.677.496.930.856.858.495.29
bsdtar0.3315.5813.972.18פלט שגוי²אין הצפנה³אין מילון גדול⁴
7-Zip0.33לא נתמך¹לא נתמך¹לא נתמך¹לא נתמך¹לא נתמך¹לא נתמך¹
לפטופ, 14 ליבות / 20 תהליכונים, Windows⁵
nzbfast0.351.052.920.322.322.222.04
unrar 7.230.636.376.140.622.923.332.44
rarpar0.7411.589.760.542.722.852.38
unarאין CLI⁵אין CLI⁵אין CLI⁵אין CLI⁵אין CLI⁵אין CLI⁵אין CLI⁵
bsdtar0.8116.7215.141.13פלט שגוי²אין הצפנה³אין מילון גדול⁴
7-Zip0.765.455.790.654.214.132.51
לפטופ, Apple M5 Max⁶
nzbfast0.100.401.150.100.980.990.94
unrar 7.220.161.941.870.151.751.911.52
rarpar0.112.091.970.181.541.551.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 ו-7-Zip לא התחרו על המכונה הזו. ה-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.

אימות ותיקון PAR2: מערך של 1 GiB, ארבע רמות נזק

קורפוס: 1 GiB של מטען אקראי ארוז במצב store לתוך 21 כרכי RAR, ואז שני מערכי PAR2 ברדונדנטיות של 10%, אחד בבלוקים של 1 MiB ואחד ב-64 KiB, ואז מפות נזק קבועות. כל הרצה משתמשת באותו פרוטוקול: עותק טרי, קריאת הקורפוס כולו פעם אחת לחימום המטמון, ואז תזמון. הטוב מבין שלושה סבבים משולבים; כל כרך מתוקן מושווה מול המערך הטהור בכל סבב. נמוך יותר טוב יותר.

תיקון לגבי הקורפוס, כי גרסה קודמת של העמוד הזה הגזימה בו. אמרנו שכל מכונה הריצה קורפוס זהה-בית, נבדק בגיבוב. גיבוב כל כרך בכל מערך מראה שזה נכון לגבי שולחן העבודה עם 32 הליבות ולפטופ ה-Windows, שתואמים בדיוק, ולא לגבי שולחן העבודה עם 20 הליבות, שמחזיק הגרלה אקראית שונה של אותה צורה: אותם 21 כרכים באותם גדלים, אותם שני גדלי בלוק, ונזק מאומת באותם 3, 101 ו-1,500 בלוקים פרושים על פני אותו מספר קבצים. כל מספר בתוך שורה עדיין נמדד על בייטים שכל כלי באותה שורה חולק, וזה מה שכל השוואה נשענת עליו. אבל השורות אינן ארבע תצוגות של קלט אחד, ומכיוון שאופי המטען שווה כ-7% לסריקה של מתחרה אחד, זה שווה הצהרה ולא טשטוש.

איזה par2 הוא איזה.par2cmdline המקורי הוא היישום הייחוס שכולם פיצלו ממנו. ‏par2cmdline-turbo הוא הפיצול שמארח את הגרעינים המכתובים ביד ב-SIMD של שדה גלואה של ParPar: זה בדיוק מה ש"טורבו" אומר, וזו הסיבה שטורבו, ולא המקורי, הוא הכלי ששווה למדוד מולו. שתי עמודות הטורבו למטה מריצות את אותם גרעיני ParPar. מה שמפריד ביניהן הוא לא החשבון אלא הבנייה והדגלים.

אושר על בניית השחרור מול המתחרה העדכני, 24 באוגוסט 2026. הטבלאות האלה נמדדו לפני שנחתכה 1.2.2 ולפני ש-par2cmdline-turbo שחררה 1.5.0 (20 באוגוסט 2026), כך שעמודת 20 הליבות הורצה מחדש על שתיהן: בניית השחרור 1.2.2 שלנו מול טורבו 1.5.0, שלושה סבבים משולבים לכל מקטע, כל קובץ מתוקן מושווה מול המערך הטהור. כל ארבעת המקטעים משוחזרים - שלנו 0.18 / 0.30 / 0.75 / 2.02 מול ה-0.19 / 0.33 / 0.74 / 2.07 המודפסים כאן, וטורבו 1.5.0 נוחת בתוך כמה אחוזים מהבנייה שבטבלה בכל מקטע ובשתי התצורות. התאים עומדים כפי שפורסמו; שלוש המכונות האחרות שומרות על התאריכים שלהן עצמן.

אז המתחרה מופיע פעמיים, ואחת מהעמודות האלה היא המקרה הטוב ביותר שלו ולא ברירת המחדל שלו. הבינארי המשוחרר שהייתם מורידים מקומפל למעבד בסיסי גנרי ומגבב רק כמה קבצים בכל פעם; בניית אותו מקור למעבד המארח האמיתי והעברת -T16 נותנת לו להשתמש בפקודות שלמכונה הזו יש באמת ולגבב שישה עשר קבצים בבת אחת. בלפטופ זה שווה עד פי 2.6, כולו מבנייה ומדגלים. שפטו אותנו על העמודה המכוונת, שהיא ההשוואה הקשה יותר; העמודה כפי-שנשלח היא מה שמישהו שמוריד אותו באמת חווה. par2cmdline הוא המקורי, גרסה 1.2.0, נבנה מהמקור על כל מכונה. rarpar הוא יישום ה-PAR2 של Weaver עצמה, נבנה מהמקור עם קצה ה-GPU מסוג Metal שלו מופעל. ה-par2j של MultiPar הוא Windows-בלבד, כך שהוא מופיע רק בשורות לפטופ ה-Windows. שורות ה-M5 Max מריצות את שני הכלים עם בניות arm64 עדכניות ל-macOS לצד שתי עמודות הטורבו; par2cmdline הקלאסי לא התחרה על המכונה הזו.

שניות, מערך של 1 GiBשולחן עבודה, 32 ליבותשולחן עבודה, 20 ליבותלפטופ, 14 ליבותלפטופ, M5 Max
ללא נזק - אימות נקי
nzbfast0.110.190.230.18
par2-turbo, מכוונן0.310.380.420.28
par2-turbo, כפי שנשלח0.861.121.060.80
par2cmdline3.033.843.81לא התחרה
rarpar2.623.452.962.32
MultiParWindows בלבדWindows בלבד1.34Windows בלבד
3 בלוקים פגומים - כמה מאמרות מתות
nzbfast0.220.330.460.26
par2-turbo, מכוונן0.510.660.780.48
par2-turbo, כפי שנשלח1.081.461.421.00
par2cmdline3.644.584.98לא התחרה
rarpar4.275.534.993.64
MultiParWindows בלבדWindows בלבד1.71Windows בלבד
101 בלוקים פגומים
nzbfast0.480.740.960.66
par2-turbo, מכוונן0.881.171.400.85
par2-turbo, כפי שנשלח2.042.652.691.84
par2cmdline5.577.5711.7לא התחרה
rarpar4.735.735.744.17
MultiParWindows בלבדWindows בלבד2.65Windows בלבד
1,500 בלוקים פגומים - 91% מהשחזור בשימוש
nzbfast1.002.072.461.61
par2-turbo, מכוונן3.005.526.734.07
par2-turbo, כפי שנשלח5.218.209.306.01
par2cmdline67.786.1403לא התחרה
rarpar7.1511.4914.226.91
MultiParWindows בלבדWindows בלבד5.40Windows בלבד

כל שישה עשר תאי nzbfast - ארבע מכונות בארבע רמות נזק - הם שלנו, כמה מהם ביותר מפי 2 מול הבנייה המכוונת ובפי 2.3 עד פי 7.7 מול זו שהייתם באמת מורידים. תאי הנזק הכבד הם המעניינים, וההערה למטה מסבירה את האלגוריתם שמאחוריהם.

המקורי חזר לטבלה, וכדאי לראות למה הפיצול קיים. גרסה קודמת של העמוד הזה הסירה את עמודת par2cmdline בטענה שהיא הייתה איטית יותר מכל השאר בסבב, וזה נכון ולא סיבה מספיק טובה: זה היישום שכמעט כל כלי אחר צאצא ממנו, וקוראים ראויים לקו הבסיס במקום לטענה שלנו עליו. ברמת הנזק הכבדה ביותר זה לוקח כ-69 s שבו הפיצול ה-SIMD לוקח 3.2 s ואנחנו לוקחים 3.1 s. המקדם עשרים הזה הוא כל הטיעון עבור הגרעינים המכתובים ביד של שדה גלואה, וזה אותו טיעון שאנחנו עושים עבור שלנו.

נזק קל הוא המקרה שחשוב. כמה מאמרות שנכשלו הרבה יותר טיפוסי מ-101 בלוקים מתים, ולא כלום כמו 1,500. רוב תיקון קל אינו מתמטיקת Reed-Solomon בכלל, זו קריאה וגיבוב MD5 של גיגה-בייט, וזו הסיבה ששורת 3 הבלוקים עוקבת אחרי שורת האימות-הנקי ולא אחרי שורות התיקון.

רמת הנזק הכבדה ביותר היא סוג עבודה שונה, והיא מקבלת אלגוריתם שונה. הרמה האחרונה הזו פוגעת ב-1,500 בלוקים על פני כל 21 הכרכים וצורכת כ-91% מנתוני השחזור, וזה המקום שבו החשבון של Reed-Solomon, ולא הגיבוב או הדיסק, הופך כמעט לכל העבודה. בניית השחרור מחשבת את התיקונים הכבדים ביותר עם התמרה תורת-מספרית במקום קיפול שדה-גלואה הקלאסי - אותה מתמטיקה, מוערכת בצורה שמתרחבת הרבה יותר טוב במספרי בלוקים גבוהים: פי 2.7 לפני הבנייה המכוונת בשולחן העבודה עם 20 הליבות, ובלפטופ ה-Windows פי 2.7 לפני הבנייה המכוונת ופי 2.2 לפני MultiPar. נזק קל עדיין רץ בנתיב הקלאסי, וזו הסיבה שהרמות האחרות בקושי זזו: ההתמרה משתלמת רק מעל כ-512 בלוקים פגומים, כך שמתחת לזה המתזמן לא משתמש בה.

נתיב מהיר יותר שווה רק אם הוא לא יכול להיות שגוי. שני הנתיבים מחשבים את אותה כמות והם זהים-סיבית מבנייתם, וכל תיקון בעמוד הזה נשער מול הקבצים שנבנו מחדש תואמים למערך הטהור: 228 תיקונים מתוזמנים על פני המכונות בסבב הזה, אפס אי-התאמות. בניית השחרור לא נשענת על השיא הזה. כל תיקון מאמת את הפלט שלו עצמו מול גיבובי הקבצים, ואחד שנכשל יבוצע מחדש אוטומטית בנתיב הקלאסי, ירשום ביומן את הסטייה, וישמור על הנתיב הקלאסי לשארית ההרצה הזו. ההגדרה נמצאת בלוח המחוונים בתור מצב PAR מהיר אם הייתם מעדיפים לא להחזיק אותה בכלל, ומכונות עם מעט מדי זיכרון עבורה מסרבות לה מעצמן במקום לנסות ולהיכשל. נמדד מחדש ב-2 באוגוסט על הבנייה הנוכחית: שני שולחנות העבודה נוחתים בתוך כמה אחוזים מהטבלה הזו, ועם מצב PAR מהיר כבוי שולחן העבודה עם 20 הליבות נופל בחזרה בדיוק לזמן האיטי יותר של הנתיב הקלאסי, וזה מה שאומר שהניצחון הוא השיטה ולא התנאים.

עמודת לפטופ ה-Windows הזדקקה לתיקון, והוא פועל נגדנו. Windows מוריד עבודת רקע מתמשכת לליבות היעילות שלו אחרי כמה שניות. הדימון שלנו יוצא מכך בהפעלה ושום כלי אחר לא יכול, כך שגרסה קודמת של העמוד הזה פרסמה את הזמנים המוגבלים שלהם כאילו היו הזמנים של הכלים עצמם. הרצה חוזרת של המכונה הזו עם כל כלי מורם לעדיפות גבוהה מזיזה את כל השדה: ברמת הנזק הכבדה ביותר par2-turbo זז מ-22.4 s ל-6.41 ו-rarpar מ-59.2 s ל-14.4, ובחתך אחד של העמוד הזה זה הפך את העמודה משלנו לכזו שאיבדנו. עמודת הלפטופ כולה נמדדת כך עכשיו - התיקון נשאר גם ששורה זו נכבשה מחדש מאז על ידי שינוי האלגוריתם שלמעלה, כי הזמנים של השדה על המכונה הזו הוגנים רק כשההגבלה מוסרת.

רשומות שחזור RAR: תיקון בלי PAR2

כש-PAR2 לא יכול לכסות את הנזק, רשומת השחזור בתוך ה-RAR עצמו היא קו ההגנה האחרון. עד 1.0.8 שלנו נכשל בכל ארכיון מעל כ-13 MB, כך שהמקטע הזה לא היה יכול לרוץ בכלל. הנזק הוא שלושה חורים של 3,000 בייט ב-20%, 50% ו-80% דרך האזור המוגן. שני הכלים הפיקו פלט זהה בית-בית לקובץ הטהור, ושלנו זהה בית-בית למה ש-rar r עצמו כותב. הטוב מבין שלושה, שולחן עבודה עם 32 ליבות, שני הכלים הורצו מחדש יחד ב-2 באוגוסט.

16 MB32 MB128 MB512 MB2 GB
nzbfast0.0490.0590.1300.4001.527
rar 7.23 repair0.2780.4661.0652.2916.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 ליבות
nzbfast0.440.50
rar 7.23 rc0.460.58
rarpar restore-volumes0.480.61

התא של 32 הליבות כאן היה 3.12 s מול ה-0.47 של rar rc בחתך האחרון של העמוד הזה, פורסם כאיטי פי 6.6 והמספר הגרוע ביותר עליו. הסיבה הייתה פתרון המחיקה רץ בכ-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 של טורבו, כי אלה המנועים המשולבים שרוכבים על הורדה חיה ולא ריצות עצמאיות חד-פעמיות. צורת מילון ה-128 MiB היא הגרועה ביותר מבחינה זו, בכ-304 MB מול 139 MB של unrar. התיקון הכבד ביותר עולה עכשיו זיכרון גם הוא: השיטה המהירה יותר עבור 512-ומעלה בלוקים חסרים עובדת מנתוני השחזור שמוחזקים שוכנים, כך שהיא מורשית עד רבע מה-RAM של המכונה, מוגבלת ב-4 GB, ומכונה שלא יכולה לוותר על כך שקטה לוקחת את שיטת הזיכרון-הנמוך במקום זאת - אותו חשבון ואותם זמנים כמו השורות האמצעיות של טבלת ה-PAR2, פשוט לא פי 3 על האחרונה. אם אתם רוצים את הקבוצה השוכנת הקטנה ביותר האפשרית למשימה עצמאית, הכלים הייעודיים עדיין מנצחים בעמודה הזו.

כל מספר בעמוד הזה הוא הרצה מתוארכת עם הפקודה והתנאים המדויקים שלה רשומים, כולל תוצאות שליליות וגישות שננטשו. העמודים האלה הם הרשומה המפורסמת, והם מתמלאים בפירוט ככל שסבבים נוספים נוחתים.

יכולת, לא מיקרו-בדיקות

מה כל קליינט יכול לעשות

nzbfastSABnzbd 5NZBGet 26rustnzbWeaverUsenappNewsbin
NNTP בצנרתכןכבוי כברירת מחדללאכן-&sup7;--
אימות מלא במהלך ההורדהכל בלוקאחריבדיקה-מהירהאחריאחריאחריאחרי
חילוץ במהלך ההורדהבזרם, בלי כרכים בדיסקפריקה ישירה&sup4;פריקה ישירה&sup4;שלבים, ואז פורק&sup5;לאלאלא
דיסק נדרש לפרסום של N GB~פי 1×N~פי 2×N~פי 2×N~פי 2×N~פי 2×N~פי 2×N~פי 2×N
פסק דין על השלמות לפני ההורדהמדויק-בלוקלאאחוז בריאותלא-&sup7;בדיקת מאמרהלא
זיכרון תחום (אף פעם לא swap)תוקצבהגדרת הגבלת-מטמוןהגדרת מטמוןלאלא--
מעלה את מגבלת הקבצים-הפתוחים שלוכן, בהפעלה-&sup8;-&sup8;-&sup8;-&sup8;-&sup8;-&sup8;
בדיקת הקובץ בכל שלב במהלך ההורדהכןלאלאלאלארציףלא
אינדקסר מובנה + קיר פוסטריםכן, בלי מפתחלאלאלאלאממשק חיפושדפדפן קבוצות
תחליף ל-Sonarr/RadarrAPI של SAB + NewznabילידיילידיAPI תואם-SABRPC תואם-NZBGet&sup7;לאלא
שלטים לטלפון (nzb360/LunaSea)כןכןכןלא-&sup7;לאלא
רשימת מעקב אוטומטית + שדרוגיםמובנהדרך *arrדרך *arrלאלאWatchdogכללים
בינארי עצמאי יחידכןחבילות אפליקציה; Python בלינוקסכןכןכן.app.exe
קוד פתוחGPL&sup6;GPLGPLMITכןבתשלוםבתשלום
פלטפורמותmac/win/linux ‏(x64 + ARM)/docker/flatpakmac/win/linux/docker/חבילות NASmac/win/linux/docker/NAS + embeddedlinux/win (‏mac מהמקור)בינארי mac; מקור במקום אחר&sup7;mac בלבדwin בלבד

&sup4; פריקה ישירה עדיין מממשת את הכרכים קודם: פי 2 כתיבות ופי 2 דיסק. &sup5; ‏rustnzb 1.4.5 מספק כל תרחיש נכון בית-בית בסבב מ-23 באוגוסט 2026, וקלט/פלט הדיסק הנמדד שלו שם הוא כ-פי 2.1 מהמטען - כך שהוא עושה שלבים לכרכים ופורק אחרי ההורדה במקום לחלץ בזרם (ראו טבלאות העלות). הבניות הישנות יותר שלו (1.3.4-1.3.9) שלחו כרכים מעורפלים מסומנים "Completed" בלי לחלץ; הכשל הזה תוקן במעלה הזרם ב-1.4.5. &sup6; ‏GPL-3.0-or-later. &sup7; ‏Weaver 0.7.8, הבינארי המשוחרר האחרון שלו, זהות מוכחת בגיבוב (ה-sha256 של חבילת השחרור המפורסמת והבינארי בתוכה תואמים את מה שאנחנו מריצים); השורות הנמדדות שלו מגיעות מסבב העלות של 23 באוגוסט, תאי היכולת שלו מסומנים "-" הם תכונות שלא הערכנו ולא היעדרויות מאושרות; הוא מדבר RPC תואם-NZBGet, וכך המתקן שלנו מפעיל אותו, אבל לא ניסינו את השלטים לטלפון מולו. Usenapp/Newsbin הם קוראים מסחריים חד-פלטפורמיים עם תכונות מוריד; הם רשומים כי אנשים שואלים, לא כי הם מתחרים על מהירות.

&sup8; ‏macOS מתחיל תוכנית עם מגבלה של 256 קבצים פתוחים, ומערך מלא של חיבורים על פני כמה שרתים יכול לעבור אותה. ‏nzbfast מעלה את המגבלה שלו עצמו בהפעלה ב-macOS ובלינוקס: הוא מבקש 65,536, יורד בדרגות עד שהמערכת מסכימה, אף פעם לא עולה מעל המגבלה הקשיחה של המערכת, וממשיך עם מה שהיה לו אם כל שלב מסורב. ל-Windows אין מגבלה מסוג זה לכל תהליך. העמודות האחרות הן לא מוערכות ולא היעדרויות מאושרות: לא קראנו את קוד ההפעלה של שום קליינט אחר. שווה לדעת בגלל איך זה נכשל: תוכנית שנגמרים לה קבצים פתוחים באמצע משימה נוטה להיעלם במקום לדווח שגיאה.

הוכחת תעבורה · נמדד על 1.2.2

המנוע עומד בקצב של קווים אמיתיים

חתכים קודמים של העמוד הזה נשאו מערך רחב יותר של הדגמות תעבורה - הרצות רוויה מרובות-קווים, רווחי צנרת לפי-RTT, הוכחת לחץ-נגד, מדידות תקרת-פענוח - שהתחרו על בניות ש-v1.2.2 החליפה מאז. תחת כלל העמוד הזה הן פורשות במקום להישאר להזדקן, וחוזרות כשהן נחתכות מחדש על השחרור הנוכחי; שלוש הטענות שלמעלה הן אלה שכבר נמדדו מחדש על v1.2.2.

כלל קבוע: כל טענת ביצועים מצטטת את התנאים שבהם היא רצה, כולל תוצאות שליליות ופניות שגויות.