Najväčšie prekážky pri vytváraní systému Android zo zdroja

Zaujíma vás, aké úzke miesta vytvára projekt AOSP? Dan zdieľa svoje zistenia, ktoré môžu čitateľov prekvapiť v tom, čo spôsobuje a nespôsobuje prekážku.

Aktualizácia 19. 4. 12:00 CT: Objasnené časy zostavenia sú časy zostavovania ccache.Aktualizácia 20. 4. 9:17 CT: Zostava 3 určite nebola RAID 1. Opravená chyba.

V roku 2012 som začal stavať jadrá – a spoliehal som sa na môj spoľahlivý Core 2 Quad Q9550, aby som ho postavil. Ak to nebolo hodné kriku, potom skutočnosť, že som to urobil vo virtuálnom počítači v systéme Windows, to pravdepodobne zabezpečí väčšine ľudí, ktorí stavajú Android zo zdroja.

Virtualizované prostredie Ubuntu nefunguje tak dobre ako natívne prostredie a ach, aké bolestivé to bolo zjavné, keď sa jadro zostavilo viac ako 2 hodiny. Keďže som chcel nasledujúci rok začať zostavovať Android zo zdroja, vedel som, že môj súčasný hardvér to neurobí odstrihnite to – a tak sa začala dlhá a stále pokračujúca cesta k nájdeniu spôsobu, ako zredukovať túto neustále rastúcu stavbu čas.

Za tie roky som mal to šťastie, že som testoval na viacerých formových faktoroch a platformách. Je to dôležité, pretože konfigurácie zostavy nie sú v systéme Android univerzálnou situáciou. Vývojár aplikácií nemusí potrebovať rovnakú konfiguráciu ako vývojár hry. A niekto, kto vytvára iba jadrá, nemusí minúť toľko ako niekto, kto potrebuje vytvoriť plnú ROM pre Android zo zdroja vo veľmi krátkom čase. A čo výber OS -- čo sa dá (a nedá) použiť práve teraz? Dúfam, že to tiež viac preskúmam, najmä s Windows a Canonical pracujú na tom, aby do Windowsu 10 priniesli plnohodnotný Bash.

Aby sme túto sériu správne naštartovali, musíme zistiť, kde sú najväčšie potenciálne prekážky pri budovaní projektov AOSP zo zdroja. Nechodíme často nakupovať PC alebo upgrady bez toho, aby sme vedeli, kam dať svoje peniaze. Takže na základe 3-ročného výskumu a kvantifikovateľných výsledkov som pripravený podeliť sa o to, čo som našiel. Teraz očakávané odmietnutie zodpovednosti: Tieto zistenia sú založené na osobných skúsenostiach a nemôžu byť zohľadnené vo všetkých kombináciách. Tí z vás, ktorí majú vlastnú konfiguráciu zostavy, vypnite zvuk a dajte nám vedieť, ako sa vašim zostavám darí! Časy sa vzťahujú aj na zostavy s povolenou a naplnenou ccache – bola zvyčajne dvojnásobná, keď ccache ešte nebola naplnená.

Disk I/O: Musím dať tip na klobúk Tomovi Marshallovi z Cyanogen - tiež a člen tímu Kang - za to, že ste ma minulý rok nasmerovali týmto smerom. Úprimne som mu neverila, keď mi povedal, že to tak bude a úzke miesto nad CPU. Ale za posledných 6 mesiacov som to dokázal podložiť kvantifikovateľnými údajmi. V procesoroch vyššej triedy (ako je väčšina modelov Intel Core i7 pre stolné počítače) je to najväčšia prekážka, s ktorou sa váš systém stretne.

Zoberme si 4 konfigurácie zostavenia, na ktorých som to testoval. Tu vyzdvihnem CPU,

  • Zostava 1, môj „neupgradovaný“ počítač, bol Intel i7-4790K s 32 GB DDR3-2400 RAM, Samsung 840 Evo 250 GB pre môj primárny disk a starší Micron P400E 100 GB.
  • Build 2, čo bola inovovaná verzia Build 1. Teraz používa Intel i7-5960X pretaktovaný na 4,0 GHz, 32 GB DDR4-3200 RAM, Samsung SM951 512 GB AHCI m.2 SSD spolu s dvoma predchádzajúcimi SSD. Úplné špecifikácie zostavy sú na PCPartPicker.
  • Zostava 3, nedávna používateľská zostava, obsahovala Intel i7-5820K pretaktovaný na 4,2 GHz, 16 GB DDR4-2400 a 2 Samsung 840 EVO 120 GB v konfigurácii RAID0 (pruhovaná).
  • Zostava 4, nedávna zostava servera obsahujúca Intel Xeon E3-1270 v5 pri normálnych rýchlostiach, 32 GB DDR4-2133, Samsung 950 Pro 512 GB NVMe m.2 spolu so 4 podnikovými SSD SATA Samsung v poli RAID5.

Ak by ste sa na ne pozreli, ktorý z nich by podľa vás dosiahol najnižší čas zostavenia? Čo poviete na to druhé? K môjmu šoku to nebola druhá konfigurácia, ktorá trvala najkratší čas zostavenia - bola to tretia konfigurácia, at necelých 14 minút na vytvorenie CyanogenMod 13.0. Dominujúci CPU by teda určite zaujal druhé miesto, správny? Opäť nesprávne. Zostava 4, na ktorej som práve dokončil testovanie, trvala niečo vyše 25 minút! Iba tu stojí moja súčasná zostava, o 2 minúty pomalšia ako systém s polovicou jadier a vlákien, ale s polem SSD 3 SSD, zatiaľ čo moje SSD boli samostatné. Je tiež známe, že SM951 má problémy so škrtením, ak sa príliš zahreje, čo by v tomto prípade mohlo byť veľmi skutočným faktorom. Prvé a najpomalšie zostavenie trvalo asi 30 minút, jeden z mála prípadov, keď som zostavil CM 13.0; Počul som o podobných konfiguráciách zostavenia, ktoré to robia v 27.

SSD tiež bývali ťažko dostupným artiklom, takže na túto tému bolo veľmi málo diskusií. Ceny však za posledný rok dramaticky klesli v maloobchode aj na trhu s použitými výrobkami. So 120 GB SSD, ktoré sú teraz pod 50 USD, nie je prekážkou, akou kedysi bolo pridať jeden do systému. Tradičné pevné disky zvládnu túto úlohu tiež, ale používatelia s väčšou pravdepodobnosťou dosiahnu toto úzke miesto skôr ako ostatní, ak nepoužívajú SSD.

Spánok CPUCPU: Keď už vyššie spomínam, že najväčším prekážkou je diskový vstup/výstup, pečie to za predpokladu, že to nemusí byť vždy pravda – každé z tých zostavení, ktoré som použil, obsahovalo Intel Core i7. Ale ako som zistil so serverom Xeon, disk drží krok, ale potom udržiava všetkých 8 vlákien CPU pri vysokom využití prostredníctvom najťažších procesov zostavovania. A nech sa snažím akokoľvek, bez poľa RAID, ktoré sme našli vyššie, sa mi nezdá, že by bol môj Haswell-E ani zďaleka plne využitý na väčšinu procesu zostavovania. Ak teda hľadáte to najlepšie za svoje stavebné peniaze, zvážte Intel i7-5820K.

Je pravda, že je to X99, takže základná doska môže byť drahšia ako základná doska Z97; ale stále sme v prvom roku cyklu X99. Očakáva sa tiež, že ceny za Broadwell-E zostanú po vydaní podobné ako Haswell-E, čo znamená by ste mali byť schopní kúpiť do segmentu nadšencov za takmer rovnakú cenu ako i7-4790K resp i7-6700K.

Na Intel nie je v súčasnosti veľa dôvodov ísť nad rámec 5820K, pretože s ním môžete dosiahnuť pôsobivé časy zostavenia. Čím vyšší počet jadier/vlákna nižšie spolu s rýchlosťami procesora, väčšinou vám to umožní rýchlejšie zostavenie. Model i7-4770R v GIGABYTE Brix mi minulý rok v priemere zostavil 42 minút. Aj keď to nebolo najrýchlejšie, vyhovovalo mojim potrebám a umožnilo mi mať vyhradenú konfiguráciu s nízkou spotrebou energie. To isté nájdete s APU AMD – aj keď v súčasnosti nemusia fungovať tak dobre ako ich náprotivok od Intelu, svoju prácu ľahko splnia a zvyčajne za nižšiu cenu ako pri kúpe Intelu. Toto je situácia, ktorú pozorne sledujem, pretože ak sú zvesti pravdivé, APU založené na Zen môžu túto medzeru výrazne uzavrieť.

Pre tých z vás, ktorí by sa rozhodli tieto prekážky odstrániť, existuje výsledok, ktorý sa týka skôr domácich používateľov ako kancelárií. Odstránením týchto prekážok sa zvýši všeobecný výkon systému. Najmä hráči zistia, že upgrade na riešenie týchto prekážok takmer vo všetkých prípadoch tiež zvýši výkon hry. Aj keď možno nezískal najrýchlejší čas zostavenia, táto druhá zostava priniesla neočakávané prekvapenie – načítanie trvalo 30 sekúnd Just Cause 3 keď sa mnohí iní sťažovali na časy načítania v minútach. Nakoniec sú tieto časy výstavby naozaj špičkové a môžu byť pre mnohých prehnané... ale aspoň teraz bol konečne zažehnaný argument, že viac jadier bude znamenať rýchlejšie zostavovanie.

Keďže toto je len začiatok, dúfame, že čitatelia sa prihlásia a podelia sa o svoje skúsenosti s budovaním rôznych konfigurácií. Chcete ako čitateľ vidieť viac diskusií na tieto typy tém? Zvuk v komentároch nižšie!