Največja ozka grla pri izdelavi Androida iz izvorne kode

Vas zanima, kakšna ozka grla ustvarja projekt AOSP? Dan deli svoje ugotovitve -- ki bi lahko presenetile bralce glede tega, kaj povzroča ozko grlo in kaj ne.

Posodobitev 19. 4. ob 12. uri CT: Pojasnjeni časi gradnje so časi gradnje ccache.Posodobitev 20. 4. ob 9:17 CT: Build 3 prav gotovo ni bil RAID 1. Popravil to napako.

Leta 2012 sem začel graditi jedra -- in se pri gradnji zanašal na svoj zanesljivi Core 2 Quad Q9550. Če to ni bilo vredno jeze, potem bo dejstvo, da sem to naredil v VM znotraj sistema Windows, to verjetno zagotovilo za večino ljudi, ki Android gradijo iz vira.

Virtualizirano okolje Ubuntu ne deluje tako dobro kot izvorno okolje in oh, kako boleče je to postalo očitno, ko je izgradnja jedra trajala več kot 2 uri. Ker sem naslednje leto želel začeti graditi Android iz vira, sem vedel, da moja trenutna strojna oprema ne bo zmanjšati - in tako se je začelo dolgo in še vedno trajajoče potovanje, da bi našli način za zmanjšanje te vedno večje rasti čas.

V letih od takrat sem imel srečo, da sem testiral na več faktorjih oblike in platformah. To je pomembno, saj konfiguracije gradnje niso enoznačna situacija za Android. Razvijalec aplikacij morda ne potrebuje enake konfiguracije kot razvijalec iger. In nekomu, ki gradi samo jedra, morda ne bo treba porabiti toliko kot nekomu, ki mora v zelo kratkem času zgraditi celoten Android ROM iz vira. In kaj je z izbiro operacijskega sistema -- kaj je trenutno mogoče (in česa ne) uporabiti? Upam, da bom tudi to bolj raziskal, zlasti z

Windows in Canonical si prizadevata uvesti popoln Bash v Windows 10.

Za pravi začetek te serije moramo ugotoviti, kje so največja potencialna ozka grla pri gradnji projektov AOSP iz vira. Ne gremo pogosto nakupovati računalnika ali nadgradenj, ne da bi vedeli, kam z denarjem. Na podlagi 3 let raziskav in merljivih rezultatov sem torej pripravljen deliti svoje odkritje. Zdaj pa pričakovana zavrnitev odgovornosti: te ugotovitve temeljijo na osebnih izkušnjah in nikakor ne morejo upoštevati vseh kombinacij. Tisti med vami, ki imate svojo konfiguracijo gradnje, se oglasite in nam sporočite, kako napredujejo vaše gradnje! Časi se nanašajo tudi na gradnje z omogočenim in napolnjenim predpomnilnikom - običajno je bil dvojni, ko predpomnilnik še ni bil napolnjen.

Disk V/I: Moram pohvaliti Tom Marshalla iz Cyanogena – tudi a član ekipe Kang - ker ste me lani usmerili v to smer. Iskreno mu nisem verjel, ko mi je povedal, da bo to the ozko grlo nad CPE. Toda v zadnjih 6 mesecih sem to lahko podprl s merljivimi podatki. Pri procesorjih višjega razreda (kot je večina namiznih modelov Intel Core i7) je to največje ozko grlo, s katerim se bo soočal vaš sistem.

Vzemimo 4 konfiguracije gradnje, na katerih sem to preizkusil. Tukaj bom poudaril CPU,

  • Build 1, moj "nenadgrajen" računalnik, je bil Intel i7-4790K z 32 GB DDR3-2400 RAM-a, Samsung 840 Evo 250 GB za moj primarni disk in starejši Micron P400E 100 GB.
  • Build 2, ki je bila nadgrajena različica Build 1. Zdaj ima Intel i7-5960X, overclockiran na 4,0 GHz, 32 GB DDR4-3200 RAM-a, Samsung SM951 512 GB AHCI m.2 SSD skupaj z dvema prejšnjima SSD-jema. Celotne specifikacije gradnje za to so na PCPartPicker.
  • Zgradba 3, nedavna uporabniška zgradba, je vključevala Intel i7-5820K, overclockiran na 4,2 GHz, 16 GB DDR4-2400 in 2 Samsung 840 EVO 120 GB v konfiguraciji RAID0 (črtasta).
  • Build 4, nedavna zgradba strežnika, ki vključuje Intel Xeon E3-1270 v5 pri običajnih hitrostih, 32 GB DDR4-2133, Samsung 950 Pro 512 GB NVMe m.2 skupaj s 4 SSD-ji SATA Samsung za podjetja v polju RAID5.

Če bi jih samo pogledali, kateri bi po vašem mnenju dosegel najkrajši čas izdelave? Kaj pa drugo? Na moj šok ni bila druga konfiguracija, ki je zahtevala najkrajši čas gradnje - bila je tretja konfiguracija, pri nekaj manj kot 14 minut za izdelavo CyanogenMod 13.0. Tako bi zagotovo prevladujoči CPU zasedel drugo mesto, prav? Spet narobe. Zgradba 4, ki sem jo pravkar končal s testiranjem, je trajala nekaj več kot 25 minut! Samo tukaj je moja trenutna zgradba, 2 minuti počasnejša od sistema s polovico jeder in niti, vendar SSD nizom 3 SSD-jev, medtem ko so bili moji SSD-ji samostojni. Znano je tudi, da ima SM951 težave z dušenjem, če se preveč segreje, kar bi lahko bil v tem primeru zelo resničen dejavnik. Prva in najpočasnejša izdelava je trajala približno 30 minut, kar je bil eden redkih primerov, ko sem zgradil CM 13.0; Slišal sem za podobne konfiguracije gradnje, ki to počnejo v 27.

Tudi SSD-ji so bili včasih težko dobiti, zato je bilo o tej temi zelo malo razprave. Vendar pa so cene v zadnjem letu drastično padle tako na maloprodajnem kot rabljenem trgu. Z diski SSD s 120 GB, ki so zdaj nižji od 50 USD, ni ovira, kot je bila nekoč, dodati enega v sistem. Tradicionalni trdi diski bodo prav tako opravili svoje delo, vendar je verjetneje, da bodo uporabniki prišli do tega ozkega grla pred drugimi, če ne uporabljajo diskov SSD.

Spanje procesorjaprocesor: Ko sem zgoraj omenil, da je največje ozko grlo diskovni V/I, to res vpliva na predpostavko, ki morda ni vedno tako - vsaka od teh zgradb, ki sem jih uporabil, je vsebovala Intel Core i7. Toda kot sem ugotovil pri strežniku Xeon, disk ohranja korak, a nato ohranja visoko izkoriščenost vseh 8 niti CPU skozi najtežje gradbene procese. In kolikor se trudim, brez polja RAID, ki smo ga našli zgoraj, se mi moj Haswell-E niti približno ne izkorišča za večino postopka izdelave. Torej, če iščete najboljše za vaš gradbeni denar, razmislite o Intel i7-5820K.

Res je, da je X99 in zato je lahko matična plošča dražja od matične plošče Z97; vendar smo še vedno v prvem letu cikla X99. Pričakuje se tudi, da bodo cene za Broadwell-E ob izdaji ostale podobne kot za Haswell-E, kar pomeni, da morali bi imeti možnost nakupa v segmentu navdušencev za skoraj enako ceno kot i7-4790K oz. i7-6700K.

Pri Intelu trenutno ni veliko razlogov, da bi presegli 5820K, saj lahko z njim dosežete impresiven čas izdelave. Večinoma večje število jeder/niti spodaj, skupaj s hitrostjo procesorja, vam bo zagotovilo hitrejši čas gradnje. Lani je i7-4770R v GIGABYTE Brixu v povprečju naredil 42 minut. Čeprav ni bil najhitrejši, je ustrezal mojim potrebam in mi omogočil namensko konfiguracijo nizke porabe. Enako boste ugotovili pri APU-jih AMD – čeprav morda trenutno ne delujejo tako dobro kot Intelov dvojnik, bodo z lahkoto opravili delo in običajno po nižji ceni kot če bi kupili Intel. To je situacija, ki jo pozorno spremljam, ker če so govorice resnične, lahko APU-ji, ki temeljijo na Zen, to vrzel znatno zapolnijo.

Za tiste med vami, ki bi se odločili odstraniti ta ozka grla, je rezultat, ki bolj velja za domače uporabnike kot za pisarne. Splošna zmogljivost sistema se bo povečala z odstranitvijo teh ozkih grl. Predvsem igralci iger bodo ugotovili, da bo nadgradnja za odpravo teh ozkih grl v skoraj vseh primerih povečala tudi zmogljivost igre. Čeprav morda ni osvojil najhitrejšega časa gradnje, je ta druga zgradba prinesla nepričakovano presenečenje – 30-sekundni čas nalaganja na Just Cause 3 ko so se mnogi drugi pritoževali nad časom nalaganja v minutah. Na koncu so ti časi gradnje res visoki in so lahko za marsikoga pretirani... vendar je vsaj zdaj argument, da bo več jeder pomenilo hitrejše gradnje, končno ovržen.

Ker je to šele začetek, upamo, da se bodo bralci oglasili in delili svoje izkušnje pri gradnji različnih konfiguracij. Si kot bralec želite videti več razprav o tovrstnih temah? Zveni v komentarjih spodaj!