Ustvari
Google priznava, da Android zaostaja: Koda za čakalno vrsto aplikacij je bila ponovno napisana za prihajajočo različico

Google priznava, da Android zaostaja: Koda za čakalno vrsto aplikacij je bila ponovno napisana za prihajajočo različico

Arkadiy Andrienko
Nadaljevanje: Google Teases 'Amazing Things' in Android 17, But Details Are Still Under Wraps

Inženirji Googla so objavili tehnično poglobitev v eno od ključnih, a subtilnih sprememb v prihajajočem Androidu 17. Zdi se, da se je podjetje odločilo resno spoprijeti s težavo, ki frustrira celo lastnike vrhunskih naprav—tistimi mikro-zastoji v uporabniškem vmesniku, ki se zgodijo, ko preprosto pomikate po feedu ali odpirate mapo, kar povzroča, da slika skoraj neopazno zastane.

V novi različici operacijskega sistema so prepisali ključno komponento, imenovano MessageQueue. Preprosto povedano, pomislite nanjo kot na razdeljevalnika, ki upravlja, kateri procesi dobijo dostop do pomnilnika za prikazovanje zaslona in kdaj. Prej je ta razdeljevalnik deloval na principu ekskluzivnega dostopa: enotna zaklepanje na celotnem naboru podatkov. Če je ozadnji proces (kot je preverjanje uporabe aplikacij) prevzel to zaklepanje, in nato se je operacijski sistem preusmeril na druge naloge, je bil uporabniški nit ujet v čakanju. Rezultat? Izpuščeni sličice in splošni občutek, da sistem "okleva" ali deluje počasi.

Google Admits Android Lags: App Queue Code Rewritten for Upcoming Version

V Androidu 17 so opustili ta pristop in zamenjali enotno zaklepanje z mehanizmom, imenovanim DeliQueue. Ime je namerno—inženirji potegnejo analogijo s sistemom vstopnic na mesni pult. V klasični vrsti (kot prej) naslednja oseba ne more napredovati, dokler oseba na pultu ne zaključi celotne transakcije. V novem sistemu vsak nov proces dobi "vstopnico" in lahko opravlja svoje naloge, ne da bi blokiral druge. Glavna nit (uporabniška nit) nato odloča o vrstnem redu obdelave prihajajočih nalog, vendar brez vstopanja v stanje čakanja.

Za nadaljnje pospeševanje so inženirji tudi odstranili pogojne veje v kodi za primerjavo sporočil. V klasični kodi CPU poskuša napovedati, ali naj vzame "da" ali "ne" vejo; če je napoved napačna, se čas izgubi pri čiščenju cevovoda. V novi implementaciji je to zamenjano z "nepogojno" aritmetiko, ki je v sintetičnih testih pokazala povečanje zmogljivosti do 500% v scenarijih z visoko konkurenco.

Google Admits Android Lags: App Queue Code Rewritten for Upcoming Version

Redni uporabniki ne potrebujejo ročno aktivirati DeliQueue. To je optimizacija na ravni sistema, ki je privzeto omogočena za vse aplikacije, ki ciljajo na Android 17. Razvijalci že imajo dostop do orodij za testiranje, nepotešeni pa lahko namestijo zgodnje različice sistema na združljive naprave Pixel.

Kaj menite, ali bo to dejansko rešilo težave s fragmentacijo in zamikom na različnih napravah, ali pa, kot ponavadi, gre le za "obljube na papirju," in v resnici bodo proizvajalci spet vse pokvarili s svojimi prilagojenimi vmesniki?

    O avtorju
    Komentarji0