ყველაზე დიდი ხარვეზები Android-ის წყაროდან აშენებისას

გაინტერესებთ, რა შეფერხებებს ქმნის AOSP პროექტი? დენი იზიარებს თავის დასკვნებს - რამაც შეიძლება გააკვირვოს მკითხველი იმის შესახებ, თუ რა იწვევს და რა არ იწვევს შეფერხებას.

განახლება 4/19 12 pm CT: დაზუსტებული აშენების დრო არის ccache-ის აშენების დრო.განახლება 4/20 9:17 am CT: Build 3, რა თქმა უნდა, არ იყო RAID 1. გაასწორა ეგ შეცდომა.

2012 წელს დავიწყე ბირთვების შექმნა -- და მის ასაშენებლად ვეყრდნობოდი ჩემს სანდო Core 2 Quad Q9550-ს. თუ ეს არ იყო შეწუხების ღირსი, მაშინ ის ფაქტი, რომ მე ეს გავაკეთე VM-ში ვინდოუსის შიგნით, ალბათ უზრუნველყოფდა ამას იმ ადამიანების უმეტესობისთვის, რომლებიც ქმნიან Android-ს წყაროდან.

ვირტუალიზებული Ubuntu გარემო არ მუშაობს ისე, როგორც მშობლიური გარემო და ოჰ, რა მტკივნეული იყო ეს, როდესაც ბირთვის აშენებას 2 საათზე მეტი დასჭირდა. რადგან მინდოდა Android-ის შექმნა მომდევნო წელს წყაროდან, ვიცოდი, რომ ჩემი ამჟამინდელი აპარატურა არ იქნებოდა გაჭრა - და ასე დაიწყო გრძელი და ჯერ კიდევ განგრძობითი მოგზაურობა, რათა ეპოვა გზა ამ მუდმივად მზარდი აღნაგობის შესამცირებლად დრო.

მას შემდეგ წლების განმავლობაში გამიმართლა, რომ გამოვცადე მრავალი ფორმის ფაქტორი და პლატფორმა. ეს მნიშვნელოვანია, რადგან build კონფიგურაციები არ არის ერთჯერადი სიტუაცია Android-ისთვის. აპლიკაციის შემქმნელს შეიძლება არ დასჭირდეს იგივე კონფიგურაცია, როგორც თამაშის შემქმნელს. და ვინმეს, ვინც მხოლოდ ბირთვებს აშენებს, შეიძლება არ დასჭირდეს იმდენი დახარჯვა, როგორც ვინმეს, ვისაც სჭირდება სრული Android ROM-ის შექმნა წყაროდან ძალიან მოკლე დროში. რაც შეეხება OS-ის შერჩევას -- რისი გამოყენება შეიძლება (და არ შეიძლება) ახლა? ვიმედოვნებ, რომ უფრო მეტად შევისწავლი ამას, განსაკუთრებით

Windows და Canonical მუშაობენ Windows 10-ში სრულფასოვანი Bash-ის შემოტანაზე.

ამ სერიის სწორად დასაწყებად, ჩვენ უნდა ვიპოვოთ სად არის ყველაზე დიდი პოტენციური შეფერხებები AOSP პროექტების წყაროდან აშენებისას. ჩვენ ხშირად არ ვყიდულობთ კომპიუტერს ან განახლებებს ისე, რომ არ ვიცოდეთ სად ჩავდოთ ფული. ასე რომ, 3 წლიანი კვლევისა და რაოდენობრივი შედეგების საფუძველზე, მე მზად ვარ გაგიზიაროთ ის, რაც ვიპოვე. ახლა მოსალოდნელია პასუხისმგებლობის შეზღუდვა: ეს დასკვნები ეფუძნება პირად გამოცდილებას და არ შეიძლება იყოს ფაქტორები ყველა კომბინაციაში. ვინც თქვენი საკუთარი build-ის კონფიგურაციით გაქვთ, ხმა ამოიღეთ და შეგვატყობინეთ, როგორ მიდის თქვენი კონსტრუქციები! Times ასევე გულისხმობს ნაგებობებს ჩართული და დასახლებული ccache - ჩვეულებრივ ორმაგი იყო, როდესაც ccache ჯერ არ იყო დასახლებული.

დისკის I/O: ქუდის წვერი უნდა მივცე ციანოგენის ტომ მარშალს - ასევე ა გუნდის კანგის წევრი - გასულ წელს ამ მიმართულებით მითითების გამო. გულწრფელად არ მჯეროდა, როცა მითხრა, რომ ასე იქნებოდა The შეფერხება CPU-ზე. მაგრამ ბოლო 6 თვის განმავლობაში მე შევძელი ამის სარეზერვო ასლის შექმნა რაოდენობრივი მონაცემებით. უფრო მაღალი დონის CPU-ებში (როგორიცაა დესკტოპის Intel Core i7 მოდელების უმეტესობა) ეს არის ყველაზე მაღალი დაბრკოლება, რომელსაც თქვენი სისტემა განიცდის.

ავიღოთ 4 build კონფიგურაცია, რომლებზეც მე გამოვცადე ეს. აქ გამოვყოფ CPU-ს,

  • Build 1, ჩემი „განახლებული“ კომპიუტერი, იყო Intel i7-4790K 32 GB DDR3-2400 ოპერატიული მეხსიერებით, Samsung 840 Evo 250 GB ჩემი ძირითადი დისკისთვის და ძველი Micron P400E 100 GB.
  • Build 2, რომელიც იყო Build 1-ის განახლებული ვერსია. ახლა აქვს Intel i7-5960X გადატვირთული 4.0 გჰც სიხშირეზე, 32 GB DDR4-3200 ოპერატიული მეხსიერება, Samsung SM951 512 GB AHCI m.2 SSD ორ წინა SSD-თან ერთად. ამის სრული კონსტრუქციის სპეციფიკაციები PCPartPicker-ზეა.
  • Build 3, მომხმარებლის ბოლო ვერსია, აღჭურვილია Intel i7-5820K 4.2 გჰც-მდე გადატვირთვის, 16 GB DDR4-2400 და 2 Samsung 840 EVO 120 GB RAID0 (ზოლიანი) კონფიგურაციით.
  • Build 4, უახლესი სერვერის აშენება, რომელშიც არის Intel Xeon E3-1270 v5 ნორმალური სიჩქარით, 32 GB DDR4-2133, Samsung 950 Pro 512 GB NVMe m.2 და 4 SATA Samsung საწარმოს SSD RAID5 მასივში.

თუ თქვენ უბრალოდ დააკვირდით მათ, თქვენი აზრით, რომელმა მიაღწია მშენებლობის ყველაზე დაბალ დროს? მეორეზე რას იტყვით? ჩემდა გასაოცრად, ეს არ იყო მეორე კონფიგურაცია, რომელსაც ყველაზე დაბალი დრო დასჭირდა - ეს იყო მესამე კონფიგურაცია, სულ რაღაც 14 წუთზე ნაკლები CyanogenMod 13.0-ის შესაქმნელად. ასე რომ, რა თქმა უნდა, დომინანტური CPU დაიკავებს მეორე ადგილს, უფლება? ისევ არასწორია. Build 4, რომელზეც ახლახან დავასრულე ტესტირება, 25 წუთზე მეტი დრო დასჭირდა! მხოლოდ აქ დგას ჩემი ამჟამინდელი კონსტრუქცია, 2 წუთით უფრო ნელი, ვიდრე სისტემა, რომელსაც აქვს ნახევარი ბირთვი და ძაფები, მაგრამ SSD მასივი 3 SSD-ისგან, მაშინ როცა ჩემი SSD-ები დამოუკიდებელი იყო. ასევე ცნობილია, რომ SM951-ს აქვს შეფერხების პრობლემები, თუ ის ძალიან ცხელდება, რაც შეიძლება იყოს ძალიან რეალური ფაქტორი ამ შემთხვევაში. პირველ და ყველაზე ნელ აწყობას დაახლოებით 30 წუთი დასჭირდა, ერთ-ერთი ერთადერთი შემთხვევა, როდესაც ავაშენე CM 13.0; მე მსმენია მსგავსი build კონფიგურაციების შესახებ, რომლებიც ამას აკეთებენ 27-ში.

SSD-ები ასევე რთულად მოსაპოვებელი ნივთი იყო, ამიტომ ამ თემაზე ძალიან ცოტა დისკუსია იყო. თუმცა, ფასები მკვეთრად დაეცა როგორც საცალო, ასევე მეორადი ბაზრებზე გასული წლის განმავლობაში. 120 GB SSD-ით, რომელიც ახლა 50 დოლარზე ნაკლებია, ეს არ არის ბარიერი, რაც ადრე იყო სისტემაში ერთის დამატება. ტრადიციული მყარი დისკები ასევე შეასრულებენ სამუშაოს, მაგრამ მომხმარებლები უფრო მეტად მიაღწევენ ამ ბოსტნეულს სხვებზე ადრე, თუ არ გამოიყენებენ SSD-ს.

CPU SleepᲞᲠᲝᲪᲔᲡᲝᲠᲘ: როდესაც ზემოთ აღვნიშნავ, რომ ზედა ბოთლი არის დისკის I/O, ის აცხობს იმ ვარაუდით, რაც შეიძლება ყოველთვის ასე არ იყოს - თითოეულ მათგანს, რომელიც მე გამოვიყენე, აღჭურვილია Intel Core i7-ით. მაგრამ როგორც აღმოვაჩინე Xeon სერვერთან დაკავშირებით, დისკი ინარჩუნებს ტემპს, მაგრამ შემდეგ ინარჩუნებს CPU-ის 8 ძაფს მაღალ უტილიზაციაში უმძიმესი build პროცესების მეშვეობით. და რაც შეიძლება შევეცადე, RAID მასივის გარეშე, რომელიც ზემოთ ვიპოვეთ, ვერ ვხვდები, რომ ჩემი Haswell-E თითქმის სრულად არის გამოყენებული მშენებლობის პროცესის უმეტესობისთვის. ასე რომ, თუ თქვენ ეძებთ საუკეთესო ბალანს თქვენი შენობისთვის, განიხილეთ Intel i7-5820K.

მართალია, ეს არის X99 და ამიტომ დედაპლატა შეიძლება უფრო ძვირი იყოს ვიდრე Z97 დედაპლატა; მაგრამ ჩვენ ასევე ჯერ კიდევ X99 ციკლის პირველ წელს ვართ. ასევე მოსალოდნელია, რომ Broadwell-E-ის ფასები დარჩება მსგავსი Haswell-E გამოშვებისთანავე, რაც იმას ნიშნავს, რომ თქვენ უნდა შეგეძლოთ იყიდოთ ენთუზიასტთა სეგმენტში თითქმის იმავე ფასად, როგორც i7-4790K ან i7-6700K.

ინტელზე ამ დროისთვის 5820K-ს მიღმა გადასვლის მიზეზი არ არის, რადგან თქვენ შეგიძლიათ მიიღოთ შთამბეჭდავი აშენების დრო. უმეტესწილად, რაც უფრო მაღალია ქვემოთ მოცემული ბირთვების/ძაფების რაოდენობა, პროცესორის სიჩქარესთან ერთად, უფრო სწრაფ აშენების დროს მოგიტანთ. i7-4770R GIGABYTE Brix-ში გასულ წელს საშუალოდ 42 წუთიანი კონსტრუქცია გამომივიდა. მიუხედავად იმისა, რომ არ იყო ყველაზე სწრაფი, ის ჩემს მოთხოვნილებებს ერგებოდა და მომცა საშუალება მქონოდა გამოყოფილი დაბალი სიმძლავრის კონფიგურაცია. იგივეს იპოვით AMD APU-ებთან მიმართებაში - მიუხედავად იმისა, რომ ისინი ამჟამად ვერ მუშაობენ ისევე, როგორც მათი Intel კოლეგა, ისინი ადვილად შეასრულებენ სამუშაოს და ჩვეულებრივ უფრო დაბალ ფასად, ვიდრე Intel-ის ყიდვა. ეს არის სიტუაცია, რომელსაც მე ყურადღებით ვაკვირდები, რადგან თუ ჭორები სიმართლეს შეესაბამება, მაშინ Zen-ზე დაფუძნებული APU-ებმა შეიძლება მნიშვნელოვნად დაფარონ ეს უფსკრული.

არსებობს შედეგი მათთვის, ვინც აირჩევს ამ შეფერხებების ამოღებას, რომელიც უფრო მეტად ეხება სახლის მომხმარებლებს, ვიდრე ოფისს. ზოგადი წარმადობა გაიზრდება სისტემაზე ამ შეფერხებების მოხსნით. განსაკუთრებით გეიმერები აღმოაჩენენ, რომ ამ შეფერხებების გადასაჭრელად განახლება თითქმის ყველა შემთხვევაში ასევე გაზრდის თამაშის შესრულებას. მიუხედავად იმისა, რომ შესაძლოა არ მოიგო ყველაზე სწრაფი აშენების დრო, ამ მეორე აშენებამ მოულოდნელი სიურპრიზი გამოიწვია - 30 წამის დატვირთვის დრო უბრალოდ მიზეზი 3 როცა ბევრი სხვა წუთებში დატვირთვის დროზე წუწუნებდა. საბოლოო ჯამში, მშენებლობის ეს დრო ნამდვილად მაღალია და შეიძლება ბევრისთვის ზედმეტი იყოს... მაგრამ ყოველ შემთხვევაში, ახლა არგუმენტი, რომ მეტი ბირთვი ნიშნავს უფრო სწრაფ აშენებას, საბოლოოდ შეწყდა.

ვინაიდან ეს მხოლოდ დასაწყისია, ვიმედოვნებთ, რომ მკითხველები ახმოვანებენ და გაუზიარებენ თავიანთ გამოცდილებას სხვადასხვა კონფიგურაციის შესახებ. როგორც მკითხველს, გსურთ ნახოთ მეტი დისკუსია ამ ტიპის თემებზე? გაიგეთ ქვემოთ მოცემულ კომენტარებში!