Cele mai mari blocaje la construirea Android din sursă

click fraud protection

Sunteți curios ce blocaje construiește proiectul AOSP? Dan își împărtășește descoperirile -- care ar putea surprinde cititorii cu privire la ceea ce provoacă și ce nu provoacă un blocaj.

Actualizare 4/19 12 pm CT: Timpii de construcție clarificați sunt timpii de construcție ccache.Actualizare 4/20 9:17 am CT: Build 3 cu siguranță nu a fost RAID 1. Am corectat acea eroare.

În 2012 am început să construiesc nuclee -- și m-am bazat pe Core 2 Quad Q9550 al meu de încredere pentru a-l construi. Dacă acest lucru nu a fost demn de încântat, atunci faptul că am făcut-o într-o VM în interiorul Windows va asigura probabil că pentru majoritatea oamenilor care construiesc Android de la sursă.

Un mediu Ubuntu virtualizat nu funcționează la fel de bine ca un mediu nativ și oh, cât de dureros s-a făcut evident când un nucleu a durat peste 2 ore pentru a fi construit. Deoarece am vrut să încep să construiesc Android de la sursă în anul următor, știam că hardware-ul meu actual nu o va face tăiați-o - și așa a început o călătorie lungă și continuă pentru a găsi o modalitate de a reduce această construcție în continuă creștere timp.

În anii de atunci am avut norocul să testez pe mai mulți factori de formă și platforme. Acest lucru este important, deoarece configurațiile de construcție nu sunt o situație universală cu Android. Este posibil ca un dezvoltator de aplicații să nu aibă nevoie de aceeași configurație ca un dezvoltator de jocuri. Și cineva care construiește numai nuclee poate să nu aibă nevoie să cheltuiască la fel de mult ca cineva care trebuie să construiască un ROM Android complet de la sursă într-un timp foarte scurt. Și cum rămâne cu selecția sistemului de operare -- ce poate (și nu) fi folosit chiar acum? Sper să explorez și asta mai mult, mai ales cu Windows și Canonical lucrează pentru a aduce un Bash cu drepturi depline în Windows 10.

Pentru a începe corect această serie, trebuie să găsim unde sunt cele mai mari blocaje potențiale în construirea proiectelor AOSP de la sursă. Nu mergem adesea la cumpărături pentru un PC sau upgrade-uri fără să știm unde să punem banii. Deci, pe baza a 3 ani de cercetare și a rezultatelor cuantificabile, sunt gata să împărtășesc ceea ce am găsit. Acum, anunțul așteptat: Aceste constatări se bazează pe experiențele personale și nu pot lua în considerare toate combinațiile. Aceia dintre voi cu propria configurație de construcție, sunați și spuneți-ne cum se descurcă versiunile voastre! Timpurile se referă, de asemenea, la versiuni cu ccache activat și populat - era de obicei dublu atunci când ccache-ul nu era încă populat.

I/O disc: Trebuie să-i dau un pont de pălărie lui Tom Marshall de la Cyanogen - de asemenea a membru al echipei Kang - pentru că m-a îndreptat în această direcție anul trecut. Sincer, nu l-am crezut când mi-a spus că asta va fi cel blocaj peste CPU. Dar în ultimele 6 luni am reușit să susțin asta cu date cuantificabile. În procesoarele de ultimă generație (cum ar fi majoritatea modelelor desktop Intel Core i7) acesta este principalul blocaj pe care îl va întâmpina sistemul dumneavoastră.

Să luăm 4 configurații de construcție pe care le-am testat. Voi evidenția aici procesorul,

  • Build 1, PC-ul meu „neactualizat”, era un Intel i7-4790K cu 32 GB de RAM DDR3-2400, un Samsung 840 Evo de 250 GB pentru unitatea mea principală și un Micron P400E mai vechi de 100 GB.
  • Build 2, care a fost versiunea actualizată a Build 1. Acum are un Intel i7-5960X overclockat la 4,0 GHz, 32 GB de RAM DDR4-3200, un SSD Samsung SM951 512 GB AHCI m.2 împreună cu cele două SSD-uri anterioare. Specificațiile complete de construcție pentru aceasta sunt pe PCPartPicker.
  • Build 3, o versiune recentă de utilizator, a prezentat un Intel i7-5820K overclockat la 4,2 GHz, 16 GB de DDR4-2400 și 2 Samsung 840 EVO 120 GB în configurație RAID0 (striped).
  • Build 4, o versiune recentă de server care include un Intel Xeon E3-1270 v5 la viteze normale, 32 GB DDR4-2133, un Samsung 950 Pro 512 GB NVMe m.2 împreună cu 4 SSD-uri SATA Samsung enterprise într-o matrice RAID5.

Dacă te-ai uita doar la acestea, care ai crede că a atins cel mai mic timp de construcție? Ce zici de al doilea? Spre șocul meu, nu a fost a doua configurație care a luat cel mai mic timp de construcție - a fost a treia configurație, la puțin mai puțin de 14 minute pentru construirea CyanogenMod 13.0. Deci cu siguranță CPU-ul dominant va ocupa locul al doilea, dreapta? Gresit din nou. Build 4, pe care tocmai am terminat de testat, a durat puțin peste 25 de minute! Numai aici se află construcția mea actuală, cu 2 minute mai lent decât un sistem cu jumătate din nuclee și fire, dar o matrice SSD de 3 SSD-uri, în timp ce SSD-urile mele erau independente. De asemenea, se știe că SM951 are probleme de accelerare dacă se încălzește prea mult, lucru care ar putea fi un factor foarte real în acest caz. Prima și cea mai lentă construcție a durat aproximativ 30 de minute, una dintre singurele când am construit CM 13.0; Am auzit de configurații de construcție similare care o fac în 27.

SSD-urile erau, de asemenea, un element dificil de obținut, așa că au existat foarte puține discuții pe această temă. Cu toate acestea, prețurile au scăzut dramatic atât pe piețele cu amănuntul, cât și pe cele second-hand în ultimul an. Cu SSD-urile de 120 GB acum sub 50 USD, nu este bariera pe care a fost cândva să adăugați unul la un sistem. Hard disk-urile tradiționale vor face, de asemenea, treaba, dar este mai probabil ca utilizatorii să ajungă la acest blocaj înaintea altora dacă nu folosesc SSD-uri.

CPU SleepCPU: Când menționez mai sus că gâtul de sus este I/O pe disc, se coace într-o presupunere care poate nu este întotdeauna cazul - fiecare dintre acele versiuni pe care le-am folosit prezenta un Intel Core i7. Dar, așa cum am descoperit cu serverul Xeon, discul ține pasul, dar apoi menține toate cele 8 fire de execuție CPU la o utilizare ridicată prin cele mai grele procese de construire. Și oricât aș încerca, fără matricea RAID pe care am găsit-o mai sus, nu găsesc că Haswell-E-ul meu chiar este aproape de utilizat pe deplin pentru cea mai mare parte a procesului de construire. Deci, dacă sunteți în căutarea celei mai bune avantaje pentru banii dvs. de construcție, luați în considerare Intel i7-5820K.

Adevărat, este X99 și astfel placa de bază poate fi mai scumpă decât o placă de bază Z97; dar suntem încă în primul an al ciclului X99. Prețurile pentru Broadwell-E sunt, de asemenea, de așteptat să rămână similare cu Haswell-E la lansare, ceea ce înseamnă că ar trebui să puteți cumpăra în segmentul de entuziaști la aproape același preț ca un i7-4790K sau i7-6700K.

Pe Intel nu există prea multe motive pentru a depăși un 5820K în acest moment, deoarece puteți obține timpi de construcție impresionanți cu acesta. În cea mai mare parte, cu cât este mai mare numărul de nuclee/file de mai jos, împreună cu vitezele procesorului, vă vor oferi un timp de construcție mai rapid. Anul trecut, un i7-4770R într-un GIGABYTE Brix mi-a adus o construcție medie de 42 de minute. Deși nu era cel mai rapid, s-a potrivit nevoilor mele și mi-a permis să am o configurație dedicată de consum redus. Veți găsi același lucru cu APU-urile AMD - deși s-ar putea să nu funcționeze în prezent la fel de bine ca omologul lor Intel, își vor face treaba cu ușurință și, de obicei, la un preț mai mic decât cumpărând Intel. Aceasta este o situație pe care o urmăresc îndeaproape, deoarece dacă zvonurile sunt adevărate, atunci APU-urile bazate pe Zen ar putea reduce acest decalaj în mod semnificativ.

Există un rezultat pentru cei dintre voi care ar alege să înlăture acele blocaje, unul care se aplică mai mult utilizatorilor casnici decât la birou. Performanța generală va crește pe un sistem prin eliminarea acestor blocaje. Jucătorii în special vor descoperi că actualizarea pentru a rezolva aceste blocaje va crește în aproape toate cazurile și performanța jocului. Deși este posibil să nu fi câștigat cel mai rapid timp de construcție, a doua construcție a oferit o surpriză neașteptată -- un timp de încărcare de 30 de secunde pe Doar pentru ca 3 când mulți alții se plângeau de timpii de încărcare în minute. În cele din urmă, acești timpi de construcție sunt cu adevărat de vârf și pot fi exagerați pentru mulți... dar cel puțin acum argumentul potrivit căruia mai multe nuclee vor însemna construcții mai rapide a fost în sfârșit eliminat.

Deoarece acesta este doar începutul, sperăm că cititorii vor interveni și vor împărtăși experiențele lor de construcție în diferite configurații. Ca cititor, vrei să vezi mai multe discuții pe aceste tipuri de subiecte? Sună stins în comentariile de mai jos!