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

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

Android i Atom to kiepska para, binarny translator Intela nie spełnił pokładanych w nim nadziei
04.05.2014 13:25, aktualizacja: 05.05.2014 09:18

W zeszłym roku na sklepowych półkach pojawiły się modelesmartfonów z Androidem, które oprócz charakterystycznego robocikawabiły napisem „Intel Inside”. Złośliwi mówili, że togłównie za sprawą akcji promocyjnych Intela, który nie tylkoprzygotował zbiór narzędzi deweloperskich dla Androida x86, aleteż wspierał finansowo producentów, którzy zdecydowali sięwstawić Atomy do swoich telefonów i tabletów. Klient, rzadko kiedyznający się na subtelnościach techniki mikroprocesorowej, nakwestię tę raczej nie zwracał uwagi. Na swoją szkodę – bo jakwynika z eksperymentów, których wyniki przedstawiłaredakcja chińskiego serwisu igao7.com, od Androidów z Atomamilepiej trzymać się z daleka.

Nasi Czytelnicy nie ufają raczej benchmarkom czy innymsyntetycznym testom wydajności i energooszczędności, nauczenidoświadczeniem z firmami, które robiły co mogły, by ichurządzenia w testach wypadały jak najlepiej. To właśnie jeden ztakichtestów, przeprowadzony przez firmę ABI Research, pokazać miałodczuwalną wyższość Atoma Clover Trail+ Z2580 (m.in. w telefonieLenovo K900) nad takimi czipami w architekturze ARM jak QualcommSnapdragon czy Exynos Octa, przy zachowaniu zadowalającego poziomuzuż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. Jakwiadomo, mobilny system operacyjny Google'a pozwala przede wszystkimna uruchamianie kodu pośredniego w maszynie wirtualnej Dalvik, aledopuszcza też uruchamianie kodu natywnego procesora (zazwyczajARMv7). O ile z uruchamianiem aplikacji napisanych w całości wkodzie pośrednim urządzenia z Intelem nie powinny mieć problemu,to w wypadku kodu natywnego w grę wchodzi jedynie jego translacja.

Na początku Watt postanowił więc przyjrzeć się, jakfaktycznie wygląda sytuacja z androidowym oprogramowaniem podwzględem rodzaju zastosowanego kodu. Pomogły mu listy top25płatnych i darmowych aplikacji i gier w sklepie Google Play. Jegoodkrycie zaskakuje: spośród sprawdzonych stu najpopularniejszychpozycji dla Androida, jedynie 20% działało wyłącznie na Dalviku.Cała reszta w mniejszym lub większym stopniu korzystała z kodunatywnego.

  • Testy syntetyczne nie wyglądają dobrze dla binarnej translacji
  • Liczba aplikacji nie działających na Androidach z Atomami rośnie
[1/2] Testy syntetyczne nie wyglądają dobrze dla binarnej translacji

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

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

Obraz

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

  • ... i ten sam telefon z trzykrotnie gorszym wynikiem, gdy zastosowano binarną translację
  • Lenovo K800 w testach z natywnym kodem x86...
[1/2] ... i ten sam telefon z trzykrotnie gorszym wynikiem, gdy zastosowano binarną translację

Jeśli wyjść poza światAndroida, sytuacja też nie wygląda najciekawiej dla Atomów.Inżynier konsorcjum ARM porównał tablet Asusa T100 z procesoremAtom Z3740 (wykonanym w technologii 22 nm) i Windows 8.1 z tabletemNokii, działającym na procesorze Qualcomm Snapdragon 800 (wykonanymw 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 teoriidziałający pod Windows czip Intela powinien sprawdzać sięznakomicie – Chipzilla ma całe dziesięciolecia doświadczeń zsystemami Microsoftu. A jednak nic z tego. Zarówno w testachsyntetycznych JavaScriptu, jak i funkcjonalnych (odtwarzanie wideo,aplikacje webowe etc.), SoC Intela okazywał się zużywać nawet o75% więcej energii, niż układ Qualcomma.

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

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (63)