Zajímá vás, jaká úzká místa projekt AOSP vytváří? Dan sdílí svá zjištění – což může čtenáře překvapit, co způsobuje a nezpůsobuje překážku.
Aktualizace 19. 4. 12:00 ČT: Objasněné doby sestavení jsou doby sestavení ccache.Aktualizace 20. 4. 9:17 ČT: Sestavení 3 rozhodně nebylo RAID 1. Opravena chyba.
V roce 2012 jsem začal sestavovat jádra -- a spoléhal jsem na můj spolehlivý Core 2 Quad Q9550. Pokud to nebylo hodné krčení, pak skutečnost, že jsem to udělal na virtuálním počítači ve Windows, to pravděpodobně zajistí většině lidí, kteří staví Android ze zdroje.
Virtualizované prostředí Ubuntu nefunguje tak dobře jako nativní prostředí a ach, jak bolestivé se to ukázalo, když se jádro sestavovalo přes 2 hodiny. Protože jsem chtěl následující rok začít budovat Android ze zdroje, věděl jsem, že můj současný hardware to neudělá snížit to - a tak začala dlouhá a stále pokračující cesta k nalezení způsobu, jak snížit tuto stále rostoucí stavbu čas.
Během let od té doby jsem měl to štěstí, že jsem testoval na více formových faktorech a platformách. To je důležité, protože konfigurace sestavení nejsou u Androidu univerzální situací. Vývojář aplikace nemusí potřebovat stejnou konfiguraci jako vývojář hry. A někdo, kdo vytváří pouze jádra, nemusí utrácet tolik jako někdo, kdo potřebuje sestavit plnou Android ROM ze zdroje ve velmi krátkém čase. A co výběr OS -- co lze (a nelze) použít právě teď? Doufám, že to také prozkoumám více, zejména s
Windows a Canonical pracují na zavedení plnohodnotného Bash do Windows 10.Abychom tuto sérii správně nastartovali, musíme zjistit, kde jsou největší potenciální úzká hrdla při budování projektů AOSP ze zdroje. Nechodíme často nakupovat PC nebo upgrady, aniž bychom věděli, kam dát své peníze. Takže na základě 3 let výzkumu a kvantifikovatelných výsledků jsem připraven se podělit o to, co jsem našel. Nyní očekávané vyloučení odpovědnosti: Tato zjištění jsou založena na osobních zkušenostech a nemohou zohledňovat všechny kombinace. Ti z vás, kteří mají vlastní konfiguraci sestavení, vypněte zvuk a dejte nám vědět, jak se vašim sestavám daří! Časy také odkazují na sestavení s povolenou a naplněnou ccache - byla obvykle dvojnásobná, když ccache ještě nebyla naplněna.
Disk I/O: Musím dát tip na klobouk Tomovi Marshallovi z Cyanogen - také a člen týmu Kang - za to, že jste mě loni tímto směrem nasměrovali. Upřímně jsem mu nevěřil, když mi řekl, že to tak bude a úzké hrdlo nad CPU. Ale za posledních 6 měsíců jsem to dokázal podložit kvantifikovatelnými daty. U procesorů vyšší třídy (jako je většina stolních modelů Intel Core i7) jde o největší překážku, se kterou se váš systém setká.
Vezměme si 4 konfigurace sestavení, na kterých jsem to testoval. Zde zdůrazním CPU,
- Sestavení 1, můj „neupgradovaný“ počítač, byl Intel i7-4790K s 32 GB DDR3-2400 RAM, Samsung 840 Evo 250 GB pro můj primární disk a starší Micron P400E 100 GB.
- Build 2, což byla vylepšená verze Build 1. Nyní nabízí Intel i7-5960X přetaktovaný na 4,0 GHz, 32 GB DDR4-3200 RAM, Samsung SM951 512GB AHCI m.2 SSD spolu se dvěma předchozími SSD. Kompletní specifikace sestavení pro toto jsou na PCPartPicker.
- Sestavení 3, nedávné uživatelské sestavení, obsahovalo Intel i7-5820K přetaktovaný na 4,2 GHz, 16 GB DDR4-2400 a 2 Samsung 840 EVO 120 GB v konfiguraci RAID0 (pruhovaná).
- Sestavení 4, nedávná serverová sestava obsahující Intel Xeon E3-1270 v5 při normální rychlosti, 32 GB DDR4-2133, Samsung 950 Pro 512 GB NVMe m.2 spolu se 4 podnikovými SSD SATA Samsung v poli RAID5.
Kdybyste se na ně podívali, který z nich by podle vás dosáhl nejkratší doby sestavení? Co takhle druhý? K mému šoku to nebyla druhá konfigurace, která trvala nejkratší dobu sestavení - byla to třetí konfigurace, at necelých 14 minut na vytvoření CyanogenMod 13.0. Dominantní CPU by tedy určitě zaujalo druhé místo, že jo? Opět špatně. Sestavení 4, na kterém jsem právě dokončil testování, trvalo něco málo přes 25 minut! Pouze zde je moje současná sestava, o 2 minuty pomalejší než systém s polovinou jader a vláken, ale polem SSD se 3 SSD, zatímco moje SSD byly samostatné. Je také známo, že SM951 má problémy s škrcení, pokud se příliš zahřeje, což by v tomto případě mohlo být velmi reálným faktorem. První a nejpomalejší sestavení trvalo asi 30 minut, což je jeden z mála případů, kdy jsem sestavoval CM 13.0; Slyšel jsem o podobných konfiguracích sestavení, které to dělají ve 27.
SSD také bývaly obtížně dostupné, takže se na toto téma diskutovalo velmi málo. Ceny však za poslední rok dramaticky klesly jak v maloobchodě, tak na trhu s ojetinami. Se 120GB SSD nyní pod 50 USD to není překážka, kterou kdysi bylo přidat jeden do systému. Tradiční pevné disky odvedou svou práci také, ale uživatelé s větší pravděpodobností dosáhnou tohoto úzkého hrdla dříve než ostatní, pokud nepoužívají SSD.
PROCESOR: Když výše zmiňuji, že největším úzkým hrdlem je diskový I/O, dochází k předpokladu, že tomu tak nemusí být vždy – každé z těch sestav, které jsem použil, obsahovalo Intel Core i7. Ale jak jsem zjistil u serveru Xeon, disk drží krok, ale pak udržuje všech 8 vláken CPU při vysokém využití prostřednictvím nejtěžších procesů sestavování. A zkouším, jak mohu, bez pole RAID, které jsme našli výše, nezjišťuji, že můj Haswell-E je ani zdaleka plně využit pro většinu procesu sestavování. Pokud tedy hledáte nejlepší ránu za své stavební peníze, zvažte Intel i7-5820K.
Je pravda, že je to X99, takže základní deska může být dražší než základní deska Z97; ale také jsme stále v roce jedna cyklu X99. Očekává se, že ceny za Broadwell-E zůstanou po vydání podobné jako u Haswell-E, což znamená měli byste být schopni koupit do segmentu nadšenců za téměř stejnou cenu jako i7-4790K resp i7-6700K.
Na Intelu není v tuto chvíli moc důvodů jít za 5820K, protože s ním můžete získat působivé časy sestavení. Čím vyšší počet jader/vlákna níže, spolu s rychlostmi procesoru, z větší části vám zajistí rychlejší sestavení. I7-4770R v GIGABYTE Brix mi loni průměrně sestavil 42 minut. I když to nebylo nejrychlejší, vyhovovalo mým potřebám a umožnilo mi mít vyhrazenou konfiguraci s nízkou spotřebou. Totéž najdete u AMD APU – i když v současné době nemusí fungovat tak dobře jako jejich protějšek Intel, svou práci splní snadno a obvykle za nižší cenu než nákup Intelu. To je situace, kterou pozorně sledujem, protože pokud jsou zvěsti pravdivé, APU založené na Zen mohou tuto mezeru výrazně uzavřít.
Pro ty z vás, kteří by se rozhodli tato úzká místa odstranit, existuje výsledek, který se týká spíše domácích uživatelů než kanceláří. Odstraněním těchto úzkých míst se zvýší obecný výkon systému. Zejména hráči zjistí, že modernizace zaměřená na řešení těchto úzkých míst téměř ve všech případech také zvýší výkon hry. I když možná nezískal nejrychlejší čas sestavení, toto druhé sestavení přineslo nečekané překvapení - doba načítání 30 sekund Just Cause 3 když si mnoho dalších stěžovalo na dobu načítání v minutách. Nakonec jsou tyto doby výstavby opravdu špičkové a mohou být pro mnohé přehnané... ale alespoň nyní byl konečně zažehnán argument, že více jader bude znamenat rychlejší sestavování.
Protože toto je pouze začátek, doufáme, že se čtenáři ozvou a podělí se o své zkušenosti se sestavováním různých konfigurací. Chcete jako čtenář vidět více diskuzí na tato témata? Ozvi se v komentářích níže!