ปัญหาคอขวดที่ใหญ่ที่สุดเมื่อสร้าง Android จากแหล่งที่มา

click fraud protection

อยากรู้ว่าโครงการ AOSP สร้างคอขวดอะไรบ้าง แดนแบ่งปันการค้นพบของเขา ซึ่งอาจทำให้ผู้อ่านประหลาดใจว่าอะไรทำให้เกิดปัญหาและไม่ก่อให้เกิดปัญหาคอขวด

อัปเดต 19/4/12 12.00 น. CT: เวลาในการสร้างที่ชัดเจนคือเวลาในการสร้างแคชอัปเดต 20/4/20 9:17 น. CT: Build 3 ไม่ใช่ RAID 1 แน่นอนที่สุด แก้ไขข้อผิดพลาดนั้นแล้ว

ในปี 2012 ฉันเริ่มสร้างเคอร์เนล และอาศัย Core 2 Quad Q9550 ที่ไว้ใจได้ของฉันในการสร้างมันขึ้นมา หากนั่นไม่คุ้มค่ากับการประจบประแจงความจริงที่ว่าฉันทำใน VM ภายใน Windows อาจจะช่วยให้แน่ใจว่าคนส่วนใหญ่ที่สร้าง Android จากแหล่งที่มา

สภาพแวดล้อม Ubuntu เสมือนจริงทำงานได้ไม่ดีเท่ากับสภาพแวดล้อมดั้งเดิม และโอ้ ช่างเจ็บปวดเพียงใดที่เห็นได้ชัดเมื่อเคอร์เนลใช้เวลาสร้างมากกว่า 2 ชั่วโมง เนื่องจากฉันต้องการเริ่มสร้าง Android จากแหล่งที่มาในปีถัดไป ฉันจึงรู้ว่าฮาร์ดแวร์ปัจจุบันของฉันจะไม่ทำเช่นนั้น ตัดมันออก -- และเริ่มการเดินทางที่ยาวนานและต่อเนื่องเพื่อค้นหาวิธีลดโครงสร้างที่เพิ่มมากขึ้นเรื่อยๆ เวลา.

ในช่วงหลายปีที่ผ่านมา ฉันโชคดีพอที่จะทดสอบฟอร์มแฟคเตอร์และแพลตฟอร์มที่หลากหลาย นี่เป็นสิ่งสำคัญเนื่องจากการกำหนดค่าบิลด์ไม่ใช่สถานการณ์เดียวที่เหมาะกับทุกสถานการณ์ใน Android ผู้พัฒนาแอพพลิเคชั่นอาจไม่ต้องการการกำหนดค่าแบบเดียวกับผู้พัฒนาเกม และคนที่สร้างเคอร์เนลเพียงอย่างเดียวอาจไม่จำเป็นต้องใช้เงินมากเท่ากับคนที่ต้องการสร้าง Android ROM แบบเต็มจากแหล่งที่มาในระยะเวลาอันสั้นมาก แล้วการเลือกระบบปฏิบัติการล่ะ - อะไรที่สามารถ (และไม่สามารถใช้) ได้ในตอนนี้? ฉันหวังว่าจะได้สำรวจเรื่องนี้ให้มากขึ้นเช่นกันโดยเฉพาะกับ

Windows และ Canonical ทำงานเพื่อนำ Bash เต็มรูปแบบมาสู่ Windows 10.

เพื่อเริ่มต้นซีรีส์นี้อย่างถูกต้อง เราต้องค้นหาว่าจุดใดที่เป็นปัญหาคอขวดที่ใหญ่ที่สุดในการสร้างโครงการ AOSP จากแหล่งที่มา เราไม่ค่อยไปซื้อพีซีหรืออัปเกรดโดยไม่รู้ว่าจะนำเงินของคุณไปไว้ที่ใด จากการวิจัยและผลลัพธ์เชิงปริมาณที่สั่งสมมาเป็นเวลา 3 ปี ฉันจึงพร้อมที่จะแบ่งปันสิ่งที่ฉันพบ ต่อไปนี้เป็นข้อจำกัดความรับผิดชอบที่คาดหวัง: การค้นพบเหล่านี้อิงจากประสบการณ์ส่วนตัวและอาจไม่สามารถคำนึงถึงการผสมผสานทั้งหมดได้ พวกคุณที่มีการกำหนดค่าบิวด์ของคุณเอง ปิดเสียงและแจ้งให้เราทราบว่าบิวด์ของคุณดำเนินไปอย่างไร! เวลายังหมายถึงบิวด์ที่เปิดใช้งานและเติม ccache - โดยปกติจะเป็นสองเท่าเมื่อยังไม่มีการเติม ccache

ดิสก์ I/O: ฉันต้องให้ทิปหมวกกับ Tom Marshall แห่ง Cyanogen ด้วย สมาชิกทีมคัง - สำหรับการชี้ให้ฉันไปในทิศทางนี้เมื่อปีที่แล้ว ฉันไม่เชื่อเขาเลยจริงๆ ตอนที่เขาบอกฉันว่ามันจะเป็นแบบนี้ ที่ คอขวดเหนือ CPU แต่ในช่วง 6 เดือนที่ผ่านมา ฉันสามารถสำรองข้อมูลนี้ด้วยข้อมูลเชิงปริมาณได้ ใน CPU ระดับสูงกว่า (เช่นรุ่นเดสก์ท็อป Intel Core i7 ส่วนใหญ่) นี่คือปัญหาคอขวดอันดับต้นๆ ที่ระบบของคุณจะพบ

ลองใช้การกำหนดค่าบิลด์ 4 รายการที่ฉันทดสอบแล้ว ผมจะเน้นตรงนี้ว่า CPU

  • Build 1 พีซีที่ "ไม่ได้อัปเกรด" ของฉันคือ Intel i7-4790K พร้อม RAM DDR3-2400 ขนาด 32GB, Samsung 840 Evo 250GB สำหรับไดรฟ์หลักของฉันและ Micron P400E 100GB รุ่นเก่า
  • Build 2 ซึ่งเป็นเวอร์ชันอัปเกรดของ Build 1 ขณะนี้มี Intel i7-5960X โอเวอร์คล็อกเป็น 4.0 GHz, DDR4-3200 RAM ขนาด 32GB, Samsung SM951 512GB AHCI m.2 SSD พร้อมด้วย SSD รุ่นก่อนหน้าสองตัว ข้อมูลจำเพาะของบิลด์แบบเต็มสำหรับสิ่งนี้อยู่ใน PCPartPicker.
  • Build 3 ซึ่งเป็นบิลด์ของผู้ใช้ล่าสุด มี Intel i7-5820K โอเวอร์คล็อกเป็น 4.2 GHz, DDR4-2400 ขนาด 16GB และ Samsung 840 EVO 120GB จำนวน 2 ตัวในการกำหนดค่า RAID0 (ลายทาง)
  • Build 4 ซึ่งเป็นเซิร์ฟเวอร์บิลด์ล่าสุดที่มี Intel Xeon E3-1270 v5 ที่ความเร็วปกติ, 32 GB DDR4-2133, Samsung 950 Pro 512GB NVMe m.2 พร้อมด้วย SSD ระดับองค์กร SATA Samsung 4 ตัวในอาร์เรย์ RAID5

หากคุณเพียงแค่ดูสิ่งเหล่านั้น คุณคิดว่าอันไหนใช้เวลาสร้างน้อยที่สุด เพราะเหตุใด แล้วครั้งที่สองล่ะ? ฉันตกใจมาก ไม่ใช่การกำหนดค่าครั้งที่สองที่ใช้เวลาในการสร้างน้อยที่สุด แต่เป็นการกำหนดค่าครั้งที่สาม เพียงไม่ถึง 14 นาทีสำหรับการสร้าง CyanogenMod 13.0 แน่นอนว่า CPU ที่มีอำนาจเหนือกว่าจะมาเป็นอันดับสอง ขวา? ผิดอีกแล้ว. Build 4 ที่ฉันเพิ่งทดสอบเสร็จใช้เวลาเพียง 25 นาทีกว่าๆ! เฉพาะที่นี่เท่านั้นที่เป็นจุดที่บิลด์ปัจจุบันของฉันตั้งอยู่ 2 นาทีช้ากว่าระบบที่มีคอร์และเธรดครึ่งหนึ่ง แต่มีอาร์เรย์ SSD 3 SSD ในขณะที่ SSD ของฉันเป็นแบบสแตนด์อโลน เป็นที่ทราบกันว่า SM951 มีปัญหาการควบคุมปริมาณหากเครื่องร้อนเกินไป ซึ่งอาจเป็นปัจจัยที่แท้จริงในกรณีนี้ การสร้างครั้งแรกและช้าที่สุดใช้เวลาประมาณ 30 นาที หนึ่งในครั้งเดียวที่ฉันสร้าง CM 13.0; ฉันได้ยินมาว่ามีการกำหนดค่าบิลด์ที่คล้ายกันเกิดขึ้นในปี 27

SSD เคยเป็นไอเทมที่หาซื้อได้ยาก ดังนั้นจึงไม่ค่อยมีการพูดคุยกันในหัวข้อนี้มากนัก อย่างไรก็ตาม ราคาได้ลดลงอย่างมากทั้งในตลาดค้าปลีกและตลาดมือสองในปีที่ผ่านมา ด้วย SSD ขนาด 120GB ที่ตอนนี้ราคาต่ำกว่า 50 ดอลลาร์ มันไม่ใช่อุปสรรคในการเพิ่ม SSD เข้าไปในระบบอีกต่อไป ฮาร์ดไดรฟ์แบบเดิมก็ใช้ได้เช่นกัน แต่ผู้ใช้มีแนวโน้มที่จะประสบปัญหาคอขวดนี้ก่อนคนอื่นๆ หากไม่ได้ใช้ SSD

ซีพียูสลีปซีพียู: เมื่อฉันกล่าวถึงข้างต้นว่าปัญหาคอขวดด้านบนคือ I/O ของดิสก์ มันจะเกิดข้อผิดพลาดซึ่งอาจไม่เป็นเช่นนั้นเสมอไป - แต่ละบิลด์ที่ฉันใช้นั้นมี Intel Core i7 แต่อย่างที่ฉันพบกับเซิร์ฟเวอร์ Xeon ดิสก์จะยังคงอยู่ แต่จากนั้นก็เก็บเธรด CPU ทั้ง 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 นาที แม้ว่าจะไม่ใช่วิธีที่เร็วที่สุด แต่ก็เหมาะกับความต้องการของฉันและทำให้ฉันมีการกำหนดค่าที่ใช้พลังงานต่ำโดยเฉพาะ คุณจะพบสิ่งเดียวกันนี้กับ AMD APU แม้ว่าพวกมันอาจทำงานได้ไม่ดีเท่ากับ Intel ในปัจจุบัน แต่พวกมันก็สามารถทำงานให้สำเร็จได้อย่างง่ายดาย และโดยปกติจะมีราคาที่ต่ำกว่าการซื้อ Intel นี่เป็นสถานการณ์ที่ฉันจับตามองอย่างใกล้ชิด เพราะหากข่าวลือเป็นจริง APU ที่ใช้ Zen อาจปิดช่องว่างนั้นได้อย่างมาก

มีผลมากที่สุดสำหรับบรรดาผู้ที่เลือกที่จะขจัดปัญหาคอขวดเหล่านั้น ซึ่งมีผลกับผู้ใช้ตามบ้านมากกว่าในที่ทำงาน ประสิทธิภาพโดยทั่วไปจะเพิ่มขึ้นบนระบบโดยการขจัดปัญหาคอขวดเหล่านี้ นักเล่นเกมโดยเฉพาะจะพบว่าการอัพเกรดเพื่อแก้ไขปัญหาคอขวดเหล่านี้จะเพิ่มประสิทธิภาพของเกมในเกือบทุกกรณีด้วย แม้ว่ามันอาจจะไม่ชนะเวลาในการสร้างที่เร็วที่สุด แต่การสร้างครั้งที่สองนั้นทำให้เกิดความประหลาดใจที่ไม่คาดคิด นั่นคือเวลาในการโหลด 30 วินาที เพียงสาเหตุที่ 3 เมื่อคนอื่น ๆ หลายคนบ่นเกี่ยวกับเวลาในการโหลดเป็นนาที ท้ายที่สุดแล้ว เวลาในการสร้างเหล่านี้ก็ถือว่าสูงจริงๆ และอาจเกินกำลังสำหรับหลาย ๆ คน... แต่อย่างน้อยตอนนี้ข้อโต้แย้งที่ว่าคอร์ที่มากขึ้นจะหมายถึงการสร้างที่เร็วขึ้นในที่สุดก็ได้พักแล้ว

เนื่องจากนี่เป็นเพียงจุดเริ่มต้น เราหวังว่าผู้อ่านจะได้มีส่วนร่วมและแบ่งปันประสบการณ์การสร้างของพวกเขาในการกำหนดค่าต่างๆ ในฐานะผู้อ่าน คุณต้องการดูการสนทนาเพิ่มเติมเกี่ยวกับหัวข้อประเภทนี้หรือไม่ ปิดเสียงในความคิดเห็นด้านล่าง!