r   e   k   l   a   m   a
r   e   k   l   a   m   a

Android i Atom to kiepska para, binarny translator Intela nie spełnił pokładanych w nim nadziei

Strona główna AktualnościSPRZĘT

W zeszłym roku na sklepowych półkach pojawiły się modele smartfonów z Androidem, które oprócz charakterystycznego robocika wabiły napisem „Intel Inside”. Złośliwi mówili, że to głównie za sprawą akcji promocyjnych Intela, który nie tylko przygotował zbiór narzędzi deweloperskich dla Androida x86, ale też wspierał finansowo producentów, którzy zdecydowali się wstawić Atomy do swoich telefonów i tabletów. Klient, rzadko kiedy znający się na subtelnościach techniki mikroprocesorowej, na kwestię tę raczej nie zwracał uwagi. Na swoją szkodę – bo jak wynika z eksperymentów, których wyniki przedstawiła redakcja chińskiego serwisu igao7.com, od Androidów z Atomami lepiej trzymać się z daleka.

Nasi Czytelnicy nie ufają raczej benchmarkom czy innym syntetycznym testom wydajności i energooszczędności, nauczeni doświadczeniem z firmami, które robiły co mogły, by ich urządzenia w testach wypadały jak najlepiej. To właśnie jeden z takich testów, przeprowadzony przez firmę ABI Research, pokazać miał odczuwalną wyższość Atoma Clover Trail+ Z2580 (m.in. w telefonie Lenovo K900) nad takimi czipami w architekturze ARM jak Qualcomm Snapdragon czy Exynos Octa, przy zachowaniu zadowalającego poziomu zużycia energii przez układ Intela.

Możliwościom Atomów z uruchomionym na nich Androidem postanowił przyjrzeć się bliżej Rod Watt, inżynier konsorcjum ARM. Jak wiadomo, mobilny system operacyjny Google'a pozwala przede wszystkim na uruchamianie kodu pośredniego w maszynie wirtualnej Dalvik, ale dopuszcza też uruchamianie kodu natywnego procesora (zazwyczaj ARMv7). O ile z uruchamianiem aplikacji napisanych w całości w kodzie pośrednim urządzenia z Intelem nie powinny mieć problemu, to w wypadku kodu natywnego w grę wchodzi jedynie jego translacja.

r   e   k   l   a   m   a

Na początku Watt postanowił więc przyjrzeć się, jak faktycznie wygląda sytuacja z androidowym oprogramowaniem pod względem rodzaju zastosowanego kodu. Pomogły mu listy top25 płatnych i darmowych aplikacji i gier w sklepie Google Play. Jego odkrycie zaskakuje: spośród sprawdzonych stu najpopularniejszych pozycji dla Androida, jedynie 20% działało wyłącznie na Dalviku. Cała reszta w mniejszym lub większym stopniu korzystała z kodu natywnego.

Jak twierdzi Intel, przeniesienie kodu ARMv7 na x86 nie jest trudne, można by się więc spodziewać, że producenci oprogramowania będą oferowali natywne komponenty swoich aplikacji także w postaci kodu dla x86. Tak jednak nie jest. Wśród sprawdzonych aplikacji, w lipcu 2013 roku jedynie 30% miało natywną wersję x86. Pół roku później, w powtórzonym badaniu, ich liczba spadła do 23%. Aby uruchomić na Atomie aplikacje wykorzystujące komponenty w kodzie ARMv7 (a takich w styczniu tego roku wśród stu najpopularniejszych było 44%), konieczne więc jest zastosowanie binarnej translacji.

Binarny translator, opracowany we współpracy z Google, działa nad warstwą kernela i bibliotek systemowych, a pod frameworkiem Androida i bibliotekami Java Native Interface (opisującymi metody interakcji kodu pośredniego z pisanym w C/C++ kodem natywnym). Według Intela, translator działać miał w sposób niezauważalny dla końcowych użytkowników, z minimalnym narzutem w zużyciu energii i mocy obliczeniowej. Aplikacje które znamy i kochamy po prostu miały działać.

Jak to zwykle bywa, slajdy swoje, a rzeczywistość swoje. Odsetek aplikacji z testowanego zbioru, który w ogóle nie uruchomił się na „atomowych” Androidach wyniósł 9%. Te zaś, które się uruchomiły w trybie binarnej translacji, działały odczuwalnie gorzej. W niektórych wypadkach ich wydajność była wyraźnie gorsza. Jak wyraźnie? Watt sięgnął po benchmarki skompilowane w wersjach dla ARMv7 i x86, uruchamiając je na telefonie Lenovo K800, z procesorem Atom Z2460. Okazuje się, że różnice na niekorzyść binarnej translacji sięgały od 60 do 80%. Towarzyszyły im wzrost obciążenia procesora i zwiększone o nawet 90% zużycie energii.

Jeśli wyjść poza świat Androida, sytuacja też nie wygląda najciekawiej dla Atomów. Inżynier konsorcjum ARM porównał tablet Asusa T100 z procesorem Atom Z3740 (wykonanym w technologii 22 nm) i Windows 8.1 z tabletem Nokii, działającym na procesorze Qualcomm Snapdragon 800 (wykonanym w technologii 28 nm) i Windows RT. Jak wyjaśnia, udało mu się odizolować zasilanie dla układów SoC w obu urządzeniach. W teorii działający pod Windows czip Intela powinien sprawdzać się znakomicie – Chipzilla ma całe dziesięciolecia doświadczeń z systemami Microsoftu. A jednak nic z tego. Zarówno w testach syntetycznych JavaScriptu, jak i funkcjonalnych (odtwarzanie wideo, aplikacje webowe etc.), SoC Intela okazywał się zużywać nawet o 75% więcej energii, niż układ Qualcomma.

Wniosek jest prosty. Jeśli szukacie telefonu czy tabletu z Androidem i wasz wzrok padł na sprzęt z Atomem, sprawdźcie przede wszystkim, jak działać będą na nim ważne dla was aplikacje. Najwyraźniej bowiem programiści wciąż traktują Androida x86 po macoszemu – i z przedstawionych przez Roda Watta danych wynika, że nie jest to wcale przejściowy trend. W przeciwnym wypadku kupicie urządzenie, które w realnej eksploatacji będzie bardzo odbiegało od tego, co zobaczyć można w dostosowanych do niego benchmarkach.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.