Najveća uska grla pri izradi Androida iz izvora

Zanima vas koja uska grla stvara AOSP projekt? Dan dijeli svoja otkrića -- koja bi mogla iznenaditi čitatelje o tome što uzrokuje, a što ne uzrokuje usko grlo.

Ažuriranje 19. 4. u 12 sati CT: Razjašnjena vremena izgradnje su ccache vremena izgradnje.Ažuriranje 20. 4. u 9:17 CT: Build 3 sasvim sigurno nije RAID 1. Ispravio tu grešku.

U 2012. počeo sam graditi kernele -- i oslonio se na svoj pouzdani Core 2 Quad Q9550 da ga izgradim. Ako to nije bilo vrijedno jeze, onda će činjenica da sam to napravio u VM-u unutar Windowsa vjerojatno to osigurati za većinu ljudi koji grade Android iz izvora.

Virtualizirano Ubuntu okruženje ne radi tako dobro kao izvorno okruženje i oh, kako je to bolno postalo očito kada je izradi kernela trebalo više od 2 sata. Kako sam sljedeće godine želio početi graditi Android iz izvora, znao sam da moj trenutni hardver neće izrezati -- i tako je počelo dugo i još uvijek trajno putovanje da se pronađe način za smanjenje te stalno rastuće građe vrijeme.

U godinama nakon toga imao sam sreću testirati na više faktora oblika i platformi. Ovo je važno budući da konfiguracije međugradnje nisu jednoznačna situacija s Androidom. Razvojnom programeru aplikacije možda neće trebati ista konfiguracija kao razvojnom programeru igara. A netko tko gradi samo kernele možda neće trebati potrošiti toliko koliko netko tko treba izgraditi puni Android ROM iz izvora u vrlo kratkom vremenu. A što je s odabirom OS-a -- što se sada može (a što ne) koristiti? Nadam se da ću i ovo više istražiti, posebno s

Windows i Canonical rade na donošenju punopravnog Basha u Windows 10.

Da bismo dobro započeli ovu seriju, moramo pronaći gdje su najveća potencijalna uska grla u izgradnji AOSP projekata iz izvora. Ne idemo često u kupovinu osobnog računala ili nadogradnji, a da ne znamo gdje staviti novac. Dakle, na temelju 3 godine istraživanja i mjerljivih rezultata spreman sam podijeliti ono što sam pronašao. Sada očekivano odricanje od odgovornosti: Ovi se nalazi temelje na osobnim iskustvima i nikako se ne mogu uključiti u sve kombinacije. Oni od vas s vlastitom konfiguracijom gradnje, neka se ozvuče i javite nam kako napreduju vaše gradnje! Vremena se također odnose na gradnje s omogućenim i popunjenim ccacheom - obično je dvostruko kada ccache još nije popunjen.

Disk I/O: Moram pohvaliti Tom Marshalla iz Cyanogena - također a član tima Kang - što ste me uputili u ovom smjeru prošle godine. Iskreno, nisam mu vjerovao kad mi je rekao da će to biti the usko grlo preko procesora. Ali tijekom proteklih 6 mjeseci uspio sam to potkrijepiti mjerljivim podacima. U CPU-ima više klase (kao što je većina modela Intel Core i7 stolnih računala) ovo je najveće usko grlo s kojim će se vaš sustav suočiti.

Uzmimo 4 konfiguracije izrade na kojima sam ovo testirao. Ovdje ću istaknuti CPU,

  • Build 1, moje "nenadograđeno" računalo, bio je Intel i7-4790K s 32 GB DDR3-2400 RAM-a, Samsung 840 Evo 250 GB za moj primarni disk i stariji Micron P400E 100 GB.
  • Build 2, koja je bila nadograđena verzija Build 1. Sada ima Intel i7-5960X overclockiran na 4,0 GHz, 32 GB DDR4-3200 RAM-a, Samsung SM951 512 GB AHCI m.2 SSD zajedno s dva prethodna SSD-a. Potpune specifikacije za ovo su na PCPartPicker-u.
  • Build 3, nedavna korisnička verzija, sadržavala je Intel i7-5820K overclockiran na 4,2 GHz, 16 GB DDR4-2400 i 2 Samsung 840 EVO 120 GB u RAID0 (prugastoj) konfiguraciji.
  • Build 4, nedavna verzija poslužitelja koja sadrži Intel Xeon E3-1270 v5 pri normalnim brzinama, 32 GB DDR4-2133, Samsung 950 Pro 512 GB NVMe m.2 zajedno s 4 SATA Samsung SSD diska za poduzeća u RAID5 polju.

Kad biste ih samo pogledali, za koji biste mislili da je postigao najkraće vrijeme izrade? Što kažete na drugo? Na moj šok, nije bila druga konfiguracija za koju je trebalo najkraće vrijeme izrade - bila je to treća konfiguracija, na nešto manje od 14 minuta za izgradnju CyanogenMod 13.0. Dakle, dominantni CPU bi sigurno zauzeo drugo mjesto, pravo? Opet krivo. Build 4, koji sam upravo završio s testiranjem, trajao je nešto više od 25 minuta! Samo ovdje stoji moja trenutna verzija, 2 minute sporija od sustava s pola jezgri i niti, ali SSD nizom od 3 SSD-a, dok su moji SSD-ovi bili samostalni. Također je poznato da SM951 ima problema s prigušivanjem ako se pregrije, što bi moglo biti vrlo stvaran faktor u ovom slučaju. Prva i najsporija izgradnja trajala je oko 30 minuta, jedan od rijetkih puta kada sam sagradio CM 13.0; Čuo sam za slične konfiguracije izgradnje koje to rade u 27.

SSD-ovi su također nekada bili teško dostupni pa je bilo vrlo malo rasprave o toj temi. Međutim, cijene su dramatično pale iu maloprodaji iu rabljenim tržištima tijekom prošle godine. S SSD-ovima od 120 GB koji su sada ispod 50 USD, dodavanje jednog u sustav više nije prepreka kao nekada. Tradicionalni tvrdi diskovi također će obaviti posao, ali vjerojatnije je da će korisnici doći do ovog uskog grla prije drugih ako ne koriste SSD.

CPU stanje mirovanjaCPU: Kad sam gore spomenuo da je najveće usko grlo diskovni I/O, to se ne uklapa u pretpostavku koja možda nije uvijek slučaj - svaka od tih verzija koje sam koristio imala je Intel Core i7. No, kao što sam otkrio s Xeon poslužiteljem, disk održava korak, ali zatim održava svih 8 CPU niti na visokoj iskorištenosti kroz najteže procese izgradnje. I koliko god pokušavao, bez RAID polja koje smo pronašli gore ne nalazim da je moj Haswell-E čak ni blizu u potpunosti iskorišten tijekom većeg dijela procesa izrade. Dakle, ako tražite najbolji rezultat za svoj novac za izgradnju, razmislite o Intel i7-5820K.

Istina, to je X99 pa bi matična ploča mogla biti skuplja od Z97 matične ploče; ali također smo još u prvoj godini X99 ciklusa. Također se očekuje da će cijene za Broadwell-E ostati slične onima za Haswell-E nakon objavljivanja, što znači da trebali biste moći kupiti u segmentu za entuzijaste po gotovo istoj cijeni kao i7-4790K ili i7-6700K.

Na Intelu trenutno nema puno razloga da ide dalje od 5820K jer s njim možete postići impresivna vremena izrade. Uglavnom, veći broj jezgri/niti u nastavku, zajedno s brzinama procesora, omogućit će vam brže vrijeme izrade. I7-4770R u GIGABYTE Brixu prošle godine u prosjeku mi je izradio 42 minute. Iako nije najbrži, odgovarao je mojim potrebama i omogućio mi namjensku konfiguraciju niske potrošnje. Naći ćete isto s AMD APU-ima - iako trenutno možda nemaju tako dobre performanse kao njihov Intelov pandan, lako će obaviti posao i obično po nižoj cijeni od kupnje Intela. Ovo je situacija na koju pomno pazim jer ako su glasine istinite onda bi APU-ovi temeljeni na Zen-u mogli značajno zatvoriti taj jaz.

Postoji rezultat za one od vas koji bi odlučili ukloniti ta uska grla, onaj koji se više odnosi na kućne korisnike nego na uredske. Opća izvedba će se povećati na sustavu uklanjanjem ovih uskih grla. Igrači će posebno otkriti da će nadogradnja za rješavanje ovih uskih grla u gotovo svim slučajevima također povećati performanse igre. Iako možda nije osvojio najbrže vrijeme izrade, ta druga verzija je neočekivano iznenadila -- vrijeme učitavanja od 30 sekundi na Just Cause 3 kada su se mnogi drugi žalili na vrijeme učitavanja u minutama. Na kraju, ova vremena izrade su stvarno visoka i mnogima bi mogla biti pretjerana... ali barem je sada konačno odbačen argument da će više jezgri značiti brže izrade.

Budući da je ovo tek početak, nadamo se da će se čitatelji javiti i podijeliti svoja iskustva o izradi različitih konfiguracija. Kao čitatelj želite li vidjeti više rasprava o ovakvim temama? Isključite zvuk u komentarima ispod!