ART - największa zmiana w Androidzie od czasu Androida [cz. 4]

ART - największa zmiana w Androidzie od czasu Androida [cz. 4]23.08.2014 12:09
Michał Mynarski

W poprzednich trzech częściach starałem przybliżyć Wam to czym jest Dalvik i czym będzie ART, jak działa jeden i drugi i jakie miejsce zajmują w świecie technologii. W czwartej części tej publikacji zmierzymy się jeszcze z tematem 64 bitów oraz przytoczymy wyniki testów ich dotyczących.

Klucz do 64 bitów na Androidzie

Parę miesięcy temu w artykule o 64-bitowym układzie ARM, czyli Apple A7 w ostatnich akapitach pisałem tak:

Wraz z premierą 4.4 KitKat w systemie znalazło się nowe środowisko tzw. ART, które działa na innej zasadzie niż Dalvik (przepisuje aplikację na kod natywny albo bardzo do natywnego zbliżony). Intuicja i zdrowy rozsądek podpowiadają, że to ART będzie kluczowym elementem przy przejściu Androida na 64 bity i już pod to jest przygotowywany.

Jednej rzeczy nie byłem wtedy w stanie przewidzieć. Mianowicie, tego jak duże wsparcie uzyska Android wraz z wprowadzeniem ART. Podczas gdy iOS - prawdopodobnie - wprowadził obsługę 64-bitowych instrukcji tylko dla architektury ARM (co jest całkowicie zrozumiałe, gdyż ten system jest od początku do końca zaprojektowany pod te procesory), o tyle w przypadku zielonego robocika do grona wspieranych architektur dołącza desktopowe x86-64 oraz MIPS64 (aktualnie w posiadaniu Imagine Technologies, twórców grafik PowerVR).

O zaletach zastosowania 64 bitów pisałem już rok temu, kiedy to dosyć dokładnie opisywałem z czym się to wiąże i dlaczego ważne jest nie tylko ze względu na poszerzenie puli adresowanego RAM-u. Ważną różnicą między przejściem na A64 w wykonaniu Apple i Google jest wykorzystanie przez twórców Androida technologii reference compression, która pozwala uporać się z problematycznym rozrostem pamięci.

Wszystko rozbija się o wydajność - 64 bity zwiększają ilość kodu oraz długość wskaźników służących do adresacji pamięci (tak, to te same, które pozwalają na adresacje słynnych "więcej niż 4GB RAM-u"). Wskaźniki na komórki pamięci zawierające dane są teraz dwa razy dłuższe, a to w pewnych przypadkach może odbić się negatywnie na osiągach aplikacji w porównaniu do wersji 32-bitowej - np. poprzez zmniejszoną wydajność pamięci podręcznej (cache) i zwiększone wykorzystanie przepustowości pamięci CPU.

Reference Compression w sprytny sposób pozwala na wykorzystanie zalet 64 bitów, zachowując przy tym zyski płynące z "krótszej" adresacji. Technologia ta jest stosowana m.in. w 64-bitowej wersji maszyny wirtualnej Javy o nazwie JRockit JVM, która pozwala używać 32-bitowe wskaźniki (referencje) na pamięć. Taki zabieg nie tylko zwiększa wydajność, ale również optymalizuje wielkość sterty pamięci danej aplikacji.

Zyski i straty

Tyle teorii. Co z tego wszystkiego otrzyma przeciętny użytkownik Androida? Jak zaznaczałem kilkukrotnie do tej pory - przejście na ART może pomóc w rozwiązaniu kilku wymagających natychmiastowej poprawy kwestii, ale nie odbędzie się to oczywiście zerowym kosztem. Na początek rzućmy okiem na to, co samo Google zaprezentowało podczas ostatniego I/O.

Wykresy porównujące wydajność ART na procesorach 32 i 64 bitowych., Źródło zdjęć: © anandtech.com, Google I/O 2014
Wykresy porównujące wydajność ART na procesorach 32 i 64 bitowych.
Źródło zdjęć: © anandtech.com, Google I/O 2014

Na załączonych grafikach możecie zobaczyć przegląd wyników benchmarków, który prezentuje wzrosty wydajności układów opartych na architekturach x86 (Intel) oraz ARM. Dotyczą one kolejno RenderScript (technologii w Androidzie obsługującej wymagające zadania obliczeniowe), Native (aplikacje korzystające z natywnych porcji kodu, o czym więcej napiszę później) oraz Crypto, czyli obliczeń kryptograficznych.

Różnica w działaniu RenderScript na 32 i 64 bitach., Źródło zdjęć: © anandtech.com, Google I/O 2014
Różnica w działaniu RenderScript na 32 i 64 bitach.
Źródło zdjęć: © anandtech.com, Google I/O 2014
Różnica w wydajności algorytmów kryptograficznych w 32 i 64 bitach., Źródło zdjęć: © anandtech.com, Google I/O 2014
Różnica w wydajności algorytmów kryptograficznych w 32 i 64 bitach.
Źródło zdjęć: © anandtech.com, Google I/O 2014

Na slajdach z I/O widzimy, że Renderscript na intelowskiej architekturze (po przejściu na 64 bity) notuje przyspieszenie od dwóch do ponad czterech razy zależnie od typu operacji. Native w wypadku ARM-owych rdzeni Cortex A57 i A53 zyskuje od ok. 12% do 20%, zaś obliczenia kryptograficzne wykonują się szybciej nawet do 15 razy. Oczywiście warto pamiętać, że to dane Google'a i za jakiś czas trzeba będzie je skonfrontować z niezależnymi testami. Niemniej jednak, nie można zaprzeczyć, że wzrost wydajności jest imponujący. Najciekawsze wnioski płyną z drugiej i trzeciej grafiki, ale aby je oceniać należy uzmysłowić sobie jak Google do nich "doszło".

Różnica w wydajności obliczeń wykonywanych natywnie na 32 i 64 bitach., Źródło zdjęć: © anandtech.com, Google I/O 2014
Różnica w wydajności obliczeń wykonywanych natywnie na 32 i 64 bitach.
Źródło zdjęć: © anandtech.com, Google I/O 2014

Różnie między działaniem w 32 i 64 bitach na tych samych rdzeniach była możliwa do zaobserwowania dzięki podmianie ABI (ang. Application Binary Interface), które jest łącznikiem między plikiem wykonywalnym (odsyłam do części pierwszej tej publikacji) a procesorem. Uruchamiano więc benchmarki na tym samych rdzeniach (np. Cortex-A57) wykorzystując z ABI 32- i 64-bitowego. Wniosek z wykresów jest jeden - przejście na 64 bity ma dużo większy wpływ na wydajność w przypadku "oszczędnych" rdzeni Cortex-A53, niż tych dedykowanych bardziej wymagającym zadaniom (A57).

Google twierdzi, że 85% wszystkich aplikacji w Google Play jest gotowa do natychmiastowego przejścia na 64 bity co oznacza, że tylko 15% programów wykorzystuje w pewien sposób kod natywny i musi być rekompilowana pod 64 bitową architekturę. To wielkie zwycięstwo da Google i spodziewam się bardzo rychłego przejścia na 64 bity jak tylko producenci procesorów zaczną dostarczać takie SoC na rynek w nadchodzącym roku.

Za wnikliwe testy wziął się również serwis Android Police, który sporządził serię dokładnych, stricte obliczeniowo-wydajnościowych, doświadczeń w listopadzie zeszłego roku, więc niedługo po cichym wprowadzeniu ART wraz z Androidem 4.4 Kitkat. O tym jednak więcej już w ostatniej części.

Poprzednie możecie znaleźć tu:

Źródło artykułu:WP Komórkomania
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.