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

סקרן אילו צווארי בקבוק בונה פרויקט AOSP? דן משתף את הממצאים שלו - מה שעשוי להפתיע את הקוראים לגבי מה גורם לצוואר בקבוק ומה לא.

עדכון 19/4 12:00 CT: זמני בנייה מובהקים הם זמני בנייה של cache.עדכון 20/4 9:17 CT: Build 3 בהחלט לא היה RAID 1. תיקן את השגיאה הזו.

בשנת 2012 התחלתי לבנות גרעינים -- וסמכתי על Core 2 Quad Q9550 המהימן שלי כדי לבנות אותו. אם זה לא היה ראוי להתכווצות אז העובדה שעשיתי את זה ב-VM בתוך Windows כנראה תבטיח זאת עבור רוב האנשים שבונים אנדרואיד ממקור.

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

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

Windows וקנוניקל עובדים כדי להביא Bash מן המניין ל-Windows 10.

כדי להתחיל את הסדרה הזו נכון, עלינו למצוא היכן צווארי הבקבוק הפוטנציאליים הגדולים ביותר בבניית פרויקטי AOSP מהמקור. אנחנו לא מרבים לקנות מחשב או שדרוגים מבלי לדעת היכן לשים את הכסף שלך. אז בהתבסס על 3 שנים של מחקר ותוצאות ניתנות לכימות, אני מוכן לחלוק את מה שמצאתי. עכשיו כתב הוויתור הצפוי: ממצאים אלה מבוססים על חוויות אישיות ואינם יכולים להביא בחשבון את כל השילובים. אלה מכם עם תצורת בנייה משלכם, נשמעים כבויים וספרו לנו איך הבנייה שלכם מסתדרת! הזמנים מתייחסים גם ל-builds עם ccache מופעל ומאוכלס - היה בדרך כלל כפול כאשר ה-cache עדיין לא אוכלס.

קלט/פלט דיסק: אני חייב לתת טיפ כובע לטום מרשל של Cyanogen - גם א חבר בצוות קאנג - על שהפניתי אותי לכיוון הזה בשנה שעברה. האמת, לא האמנתי לו כשהוא אמר לי שזה יהיה ה צוואר בקבוק על מעבד. אבל במהלך 6 החודשים האחרונים הצלחתי לגבות את זה בנתונים ניתנים לכימות. במעבדים מתקדמים יותר (כמו רוב דגמי Intel Core i7 שולחניים) זהו צוואר הבקבוק העליון שהמערכת שלך תחווה.

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

  • Build 1, המחשב ה"לא משודרג" שלי, היה Intel i7-4790K עם 32GB של DDR3-2400 RAM, Samsung 840 Evo 250GB עבור הכונן הראשי שלי ו-Micron P400E 100GB ישן יותר.
  • Build 2, שהייתה הגרסה המשודרגת של Build 1. כעת מתאפיינת ב-Intel i7-5960X מאוברקלוק ל-4.0 GHz, 32GB של DDR4-3200 RAM, SSD של Samsung SM951 512GB AHCI m.2 SSD יחד עם שני כונני ה-SSD הקודמים. מפרט הבנייה המלא עבור זה נמצא ב- PCPartPicker.
  • Build 3, בניית משתמש עדכנית, כללה אינטל i7-5820K עם אוברקלוק ל-4.2 GHz, 16GB של DDR4-2400 ו-2 Samsung 840 EVO 120GB בתצורת RAID0 (פסים).
  • Build 4, בניית שרת עדכנית הכוללת Intel Xeon E3-1270 v5 במהירויות רגילות, 32 GB DDR4-2133, Samsung 950 Pro 512GB NVMe m.2 יחד עם 4 SATA SSDs ארגוניים של Samsung במערך RAID5.

אם רק היית מסתכל על אלה, איזה מהם היית חושב השיג את זמן הבנייה הנמוך ביותר? מה עם השני? להפתעתי, זו לא הייתה התצורה השנייה שלקחה את זמן הבנייה הנמוך ביותר - זו הייתה התצורה השלישית, בשעה קצת פחות מ-14 דקות לבניית CyanogenMod 13.0. אז בהחלט המעבד השולט יתפוס את המקום השני, ימין? שוב טועה. Build 4, שרק סיימתי לבדוק עליו, ארך קצת יותר מ-25 דקות! רק כאן עומד המבנה הנוכחי שלי, איטית ב-2 דקות ממערכת עם חצי מהליבות והחוטים אבל מערך SSD של 3 SSDs, בעוד שכונני ה-SSD שלי היו עצמאיים. ה-SM951 נודע גם כבעל בעיות מצערת אם הוא מתחמם מדי, משהו שיכול להיות גורם אמיתי מאוד במקרה הזה. הבנייה הראשונה והאיטית ביותר ארכה כ-30 דקות, אחת הפעמים היחידות שבניתי CM 13.0; שמעתי על תצורות בנייה דומות שעושות את זה ב-27.

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

שינה של מעבדמעבד: כשאני מזכיר לעיל שצוואר הבקבוק העליון הוא קלט/פלט דיסק, זה אכן אופה בהנחה שאולי לא תמיד היא המקרה - כל אחד מהגירסאות האלה שהשתמשתי בהן כלל Intel Core i7. אבל כפי שמצאתי עם שרת Xeon, הדיסק מחזיק מעמד אבל אז שומר על כל 8 חוטי המעבד בניצול גבוה באמצעות תהליכי הבנייה הכבדים ביותר. ותנסה ככל העולה על רוחי, ללא מערך ה-RAID שמצאנו למעלה, אני לא מוצא את Haswell-E שלי אפילו קרוב לניצול מלא במשך רוב תהליך הבנייה. אז אם אתה מחפש את התמורה הטובה ביותר עבור הכסף הבניין שלך, שקול את Intel i7-5820K.

נכון, זה X99 ולכן לוח האם עשוי להיות יקר יותר מלוח אם Z97; אבל אנחנו גם עדיין בשנה הראשונה של מחזור X99. גם המחירים עבור Broadwell-E צפויים להישאר דומים ל-Haswell-E עם השחרור, כלומר אתה אמור להיות מסוגל לקנות לתוך פלח הנלהבים כמעט באותו מחיר כמו i7-4790K או i7-6700K.

ב-Intel אין הרבה סיבה ללכת מעבר ל-5820K כרגע, מכיוון שאתה יכול לקבל איתו זמני בנייה מרשימים. לרוב ככל שספירת הליבה/חוטים גבוהה יותר למטה, יחד עם מהירויות המעבד, תקבלו זמן בנייה מהיר יותר. ב-i7-4770R ב-GIGABYTE Brix בשנה שעברה היה לי ממוצע של 42 דקות בנייה. אמנם לא המהיר ביותר, אבל הוא התאים לצרכים שלי ואיפשר לי תצורה ייעודית להספק נמוך. אתה תמצא את אותו הדבר עם APUs AMD - למרות שהם לא מתפקדים כרגע כמו מקביליהם של אינטל, הם יעשו את העבודה בקלות ובדרך כלל במחיר נמוך יותר מאשר קניית אינטל. זהו מצב שיש לי עין עליו היטב כי אם השמועות נכונות אז APU מבוססי זן עשויים לסגור את הפער הזה באופן משמעותי.

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

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