@@MikiGry no to już Ci wyjaśniam o co mi chodzi
Wielu z nas żyje w złym przekonaniu, że to po prostu wina błędnej optymalizacji systemu. Nie, to po prostu wina „Dalvika” (środowisko
uruchomieniowe Androida), który jest okropnie źle skonstruowany.
● Bardzo krótko i zwięźle mówiąc, aplikacje które uruchamiasz na swoim smartfonie z Androidem są kompilowane w locie. Aplikacje działające w tle potrzebują składników, które również są kompilowane w locie. Ponadto w tle działa maszyna wirtualna dla Twojego procesora, która zajmuje się pilnowaniem kompilowanego kodu linijka po linijce.
● Przykład w prawdziwym życiu: Przeczytaj książkę, napisz recenzję o każdej literce, napisz recenzję swojej recenzji, przeanalizuj swoją recenzję, następnie daj ją nauczycielowi, po czym gdy ten oceni ją źle rób ciągle to samo do skutku. Oczywiście recenzowana książka to „Krzyżacy”.
● Problemem nie jest sam Dalvik, a właśnie źle skonstruowane maszyny wirtualne dla poszczególnych procesorów. Ponadto źle napisane aplikacje (no elo, Facebook i Messenger) powodują totalne zmuły w systemie, ponieważ wymagają zbyt dużo, przez co system za dużo kompiluje (i nagle staje się fragmentacja) a same aplikacje i tak z tego nie korzystają.
● To teraz wyobraź sobie te miliony linijek, które kompilują się za każdym razem gdy radośnie włączasz Facebooka. Ponadto potrzebne są kolejne miliony do innych składników… a maszyna wirtualna analizuje wszystko linijka po linijce. Gdyby dorzucić do tego aplikacje od Google, które działają w tle oraz aplikacje od producenta Twojego telefonu… cóż, teraz właściwie nie mam pojęcia jak to w ogóle działa, że czasami jednak się nie tnie.
● Google częściowo rozwiązało problem stosując system ART w
Androidach 4.4 i nowszych. Nadal wszystko jest kompilowane w locie, lecz uproszczono znacznie maszyny wirtualne.
● Jeśli chodzi o iOS czy Windows Phone, tam aplikacje są kompilowane na komputerze, a na telefonie wykonywane jako rozkazy do procesora.