Suurimmat pullonkaulat Androidin rakentamisessa lähteestä

click fraud protection

Kiinnostaako, mitä pullonkauloja AOSP-projekti rakentaa? Dan kertoo havainnoistaan, jotka saattavat yllättää lukijat siitä, mikä aiheuttaa pullonkaulan ja mikä ei.

Päivitys 19.4. klo 12 CT: Selkeät rakennusajat ovat välimuistin rakennusaikoja.Päivitys 20.4. klo 9.17 CT: Build 3 ei todellakaan ollut RAID 1. Korjasi tuon virheen.

Vuonna 2012 aloin rakentaa ytimiä – ja luotin sen rakentamiseen luotettavaan Core 2 Quad Q9550:een. Jos se ei ollut ärtymisen arvoinen, se, että tein sen virtuaalikoneessa Windowsin sisällä, varmistaa sen todennäköisesti useimmille ihmisille, jotka rakentavat Androidin lähdekoodista.

Virtualisoitu Ubuntu-ympäristö ei toimi yhtä hyvin kuin alkuperäinen ympäristö, ja voi kuinka tuskallista se kävi ilmi, kun ytimen rakentaminen kesti yli 2 tuntia. Koska halusin aloittaa Androidin rakentamisen lähteestä seuraavana vuonna, tiesin, ettei nykyinen laitteistoni tekisi sitä katkaisi sen -- ja niin alkoi pitkä ja edelleen jatkuva matka löytääkseen tavan vähentää tätä jatkuvasti kasvavaa rakennetta aika.

Sen jälkeen olen ollut onnekas testata useilla muototekijöillä ja alustoilla. Tämä on tärkeää, koska koontikokoonpanot eivät ole yksikokoinen tilanne Androidin kanssa. Sovelluskehittäjä ei välttämättä tarvitse samoja määrityksiä kuin pelin kehittäjä. Ja jonkun, joka rakentaa vain ytimiä, ei välttämättä tarvitse kuluttaa yhtä paljon kuin jonkun, jonka on rakennettava täydellinen Android ROM lähteestä hyvin lyhyessä ajassa. Entä käyttöjärjestelmän valinta – mitä voidaan (ja ei) käyttää juuri nyt? Toivon tutkivani tätä myös enemmän, varsinkin kanssa Windows ja Canonical pyrkivät tuomaan täyden Bashin Windows 10:een.

Jotta tämä sarja käynnistyisi oikein, meidän on löydettävä suurimmat mahdolliset pullonkaulat AOSP-projektien rakentamisessa lähteestä. Emme usein osta tietokonetta tai päivityksiä tietämättä mihin rahasi sijoittaa. Olen siis valmis jakamaan löytämäni kolmen vuoden tutkimuksen ja mitattavissa olevien tulosten perusteella. Nyt odotettu vastuuvapauslauseke: Nämä havainnot perustuvat henkilökohtaisiin kokemuksiin, eivätkä ne voi mitenkään ottaa huomioon kaikkia yhdistelmiä. Ne teistä, joilla on omat koontikokoonpanonne, hiljentäkää ja kertokaa meille, kuinka kokoonpanonne menee! Ajat viittaavat myös rakennuksiin, joissa ccache on käytössä ja täytetty - oli yleensä kaksinkertainen, kun ccachea ei ollut vielä täytetty.

Levyn I/O: Minun on annettava hattuvinkki Cyanogenin Tom Marshallille - myös a Team Kangin jäsen - osoitti minut tähän suuntaan viime vuonna. En rehellisesti sanottuna uskonut häntä, kun hän kertoi minulle, että näin tapahtuisi the pullonkaula CPU: ssa. Mutta viimeisten 6 kuukauden aikana olen pystynyt tukemaan tätä kvantitatiivisilla tiedoilla. Korkeatasoisissa prosessoreissa (kuten useimmissa pöytäkoneiden Intel Core i7 -malleissa) tämä on suurin pullonkaula, jonka järjestelmäsi kohtaa.

Otetaan 4 koontikokoonpanoa, joissa olen testannut tätä. Korostan tässä prosessoria,

  • Build 1, "päivittämätön" PC: ni, oli Intel i7-4790K, jossa oli 32 Gt DDR3-2400 RAM-muistia, Samsung 840 Evo 250 Gt ensisijaiselle asemalleni ja vanhempi Micron P400E 100 Gt.
  • Build 2, joka oli Build 1:n päivitetty versio. Nyt mukana Intel i7-5960X ylikellotettu 4,0 GHz, 32 Gt DDR4-3200 RAM-muistia, Samsung SM951 512 Gt AHCI m.2 SSD sekä kaksi aiempaa SSD-asemaa. Tämän täydelliset koontitiedot ovat PCPartPickerissä.
  • Build 3, äskettäinen käyttäjän versio, sisälsi Intel i7-5820K: n ylikellotettuna 4,2 GHz: iin, 16 Gt DDR4-2400:a ja 2 Samsung 840 EVO 120 Gt RAID0-kokoonpanossa (raidallinen).
  • Build 4, tuore palvelinversio, jossa on Intel Xeon E3-1270 v5 normaalinopeuksilla, 32 Gt DDR4-2133, Samsung 950 Pro 512 Gt NVMe m.2 sekä 4 SATA Samsungin yritys-SSD-levyä RAID5-järjestelmässä.

Jos katsoisit vain niitä, mikä mielestäsi saavuttaisi pienimmän rakennusajan? Entä toinen? Yllätyksekseni se ei ollut toinen kokoonpano, joka vei vähiten rakennusaikaa - se oli kolmas kokoonpano, klo vajaat 14 minuuttia CyanogenMod 13.0:n rakentamiseen. Joten varmasti hallitseva CPU olisi toisella sijalla, oikein? Taas väärin. Rakenne 4, jonka testasin juuri, kesti hieman yli 25 minuuttia! Vain tässä on nykyinen kokoonpanoni, 2 minuuttia hitaampi kuin järjestelmä, jossa on puolet ytimistä ja säikeistä, mutta kolmen SSD-levyn SSD-järjestelmä, kun taas SSD-levyni olivat itsenäisiä. SM951:llä on myös tiedetty olevan kuristusongelmia, jos se kuumenee liian kuumaksi, mikä voi olla tässä tapauksessa erittäin todellinen tekijä. Ensimmäinen ja hitain rakentaminen kesti noin 30 minuuttia, yksi ainoista kertoja, kun olin rakentanut CM 13.0:n; Olen kuullut vastaavista koontikokoonpanoista, jotka tekevät sen 27:ssä.

SSD-levyjä oli myös vaikea saada, joten aiheesta käytiin hyvin vähän keskustelua. Hinnat ovat kuitenkin laskeneet dramaattisesti sekä vähittäiskaupassa että käytettyjen tavaroiden markkinoilla viime vuoden aikana. Kun 120 Gt: n SSD-levyt ovat nyt alle 50 dollarin, sen lisääminen järjestelmään ei ole koskaan ollut esteenä. Perinteiset kiintolevyt tekevät myös tehtävänsä, mutta käyttäjät saavuttavat tämän pullonkaulan todennäköisemmin ennen muita, jos eivät käytä SSD-levyjä.

CPU: n lepotilaPROSESSORI: Kun mainitsen edellä, että ylin pullonkaula on levyn I/O, se ei vaikuta oletukseen, joka ei välttämättä aina pidä paikkaansa - jokaisessa käyttämissäni koontiversioissa oli Intel Core i7. Mutta kuten huomasin Xeon-palvelimen kanssa, levy pysyy mukana, mutta pitää sitten kaikki 8 CPU-säiettä korkealla käyttöasteella raskaimmissa rakennusprosesseissa. Ja yritän kuinka tahansa, ilman yllä löytämäämme RAID-ryhmää en löydä Haswell-E: täni edes lähes täysin hyödynnettynä suurimmassa osassa rakennusprosessia. Joten jos etsit parasta hintaa rakennusrahallesi, harkitse Intel i7-5820K: ta.

Totta, se on X99, joten emolevy voi olla kalliimpi kuin Z97-emolevy; mutta olemme myös edelleen X99-syklin ensimmäistä vuotta. Broadwell-E: n hintojen odotetaan myös pysyvän samana kuin Haswell-E: n julkaisun jälkeen, mikä tarkoittaa sitä sinun pitäisi pystyä ostamaan harrastaja-segmentistä lähes samaan hintaan kuin i7-4790K tai i7-6700K.

Intelillä ei ole juurikaan syytä mennä 5820K: ta pidemmälle tällä hetkellä, sillä sen avulla saat vaikuttavat rakennusajat. Suurimmaksi osaksi alla oleva suurempi ydin/säikemäärä sekä prosessorinopeudet nopeuttavat rakennusaikaa. i7-4770R GIGABYTE Brixissä viime vuonna kesti keskimäärin 42 minuuttia. Vaikka se ei ollutkaan nopein, se sopi tarpeisiini ja antoi minulle mahdollisuuden käyttää vähän virtaa kuluttavaa kokoonpanoa. Löydät saman myös AMD: n APU: illa – vaikka ne eivät tällä hetkellä toimi yhtä hyvin kuin Intelin vastineensa, ne tekevät työnsä helposti ja yleensä halvemmalla kuin Intelin ostaminen. Tämä on tilanne, jota seuraan tarkasti, koska jos huhut pitävät paikkansa, Zen-pohjaiset APU: t voivat sulkea tämän aukon merkittävästi.

Niille teistä, jotka päättäisitte poistaa nämä pullonkaulat, on tulos, joka koskee enemmän kotikäyttäjiä kuin toimistoa. Järjestelmän yleinen suorituskyky paranee poistamalla nämä pullonkaulat. Erityisesti pelaajat huomaavat, että päivitys näiden pullonkaulojen korjaamiseksi lisää lähes kaikissa tapauksissa myös pelin suorituskykyä. Vaikka se ei ehkä ole voittanut nopeinta rakennusaikaa, se toinen rakennus oli odottamaton yllätys - 30 sekunnin latausaika Pelkkä syy 3 kun monet muut valittivat latausajoista minuuteissa. Loppujen lopuksi nämä rakennusajat ovat todella huippuluokkaa ja saattavat olla ylivoimaisia ​​monille... mutta ainakin nyt väite, jonka mukaan enemmän ytimiä merkitsee nopeampia rakenteita, on vihdoin lakannut.

Koska tämä on vasta alkua, toivomme lukijoiden osallistuvan ja jakavan rakennuskokemuksensa eri kokoonpanoista. Haluatko lukijana nähdä lisää keskusteluja tämän tyyppisistä aiheista? Ääni alla olevissa kommenteissa!