Ahad, 11 Mei 2014

ART vs Dalvik

 Memperkenalkan runtime Android baru di KitKat


Sebagai sebahagian daripada Android 4.4 KitKat, Google mengambil keputusan untuk memperkenalkan cara baru untuk melaksanakan aplikasi di atas sistem operasi Android. Mari kita lihat dengan lebih dekat apa runtime baru ini, dipanggil ART.

ART adalah projek rahsia Google yang berterusan selama 2 tahun lamanya, bertujuan untuk meningkatkan prestasi peranti Android. Ia berdasarkan premis bahawa alat-alat moden cukup kuat dari segi kelajuan CPU dan kapasiti memori, terutama dalam perbandingan dengan generasi pertama peranti Android.

Kata-kata dari Google

ART adalah Android runtime baru yang diperkenalkan secara eksperimen dalam KitKat 4.4 keluaran. Ini adalah preview kerja dalam kemajuan dalam KitKat. Ia boleh didapati untuk maksud mendapatkan pemaju awal dan maklum balas rakan kongsi. - pemaju Android

Dalam erti kata lain, ART masih sebuah projek yang dijalankan , dianggap terlalu tidak stabil yang akan diperkenalkan sebagai runtime standard. Nasib baik, tidak ada hacking khas yang terlibat untuk mendapatkan ia berjalan.

Anda boleh memilih untuk menggunakannya dengan pergi ke "Tetapan> Pilihan Pemaju> Pilih Runtime" dan memilih ART.

 Selecting ART runtime



Memilih ART runtime

Hmmm, tetapi mengapa saya mahu untuk berubah?

ART vs Dalvik / AOT vs JIT

Aplikasi Android dikerahkan di Dalvik bytecode, yang mudah alih, tidak seperti kod asli. Untuk menjadi mampu untuk menjalankan aplikasi pada peranti, kod perlu disusun kepada kod mesin.

Dalvik adalah berdasarkan kepada JIT (just in time) kompilasi . Ini bermakna bahawa setiap kali anda menjalankan aplikasi, yang sebahagian daripada kod yang diperlukan untuk pelaksanaan yang akan diterjemahkan (dikumpulkan) kepada kod mesin pada ketika itu. Seperti yang anda kemajuan melalui aplikasi, kod tambahan akan dikumpul dan cache, supaya sistem yang boleh menggunakan semula kod manakala aplikasi sedang berjalan. Sejak JIT menyusun hanya sebahagian daripada kod, ia mempunyai kesan memori yang lebih kecil dan menggunakan ruang yang kurang fizikal pada peranti.

ART, di sisi lain, menyusun bahasa perantaraan, Dalvik bytecode, ke dalam sistem binari yang bergantung kepada . Seluruh kod app akan pra-disusun semasa memasang (sekali), dengan itu membuang lag yang kita lihat apabila kita membuka aplikasi pada peranti kami. Tanpa perlu JIT penyusunan, kod perlu melaksanakan lebih cepat.

Kecuali bagi peningkatan kelajuan potensi, penggunaan ART boleh memberikan manfaat menengah penting. Sebagai ART berjalan kod mesin aplikasi secara langsung (pelaksanaan asli), ia tidak memukul CPU keras seperti tepat pada masa kod menyusun di Dalvik. Kurang keputusan penggunaan CPU dalam masa kurang bateri longkang, yang merupakan nilai tambah yang besar bagi peranti mudah alih secara amnya.

Jadi mengapa tidak ART dilaksanakan lebih awal?
Mari kita lihat pada kelemahan AOT (ahead of time) kompilasi.

Pertama sekali, kod mesin yang dihasilkan memerlukan lebih banyak ruang daripada bytecode yang sedia ada. Tambahan pula, kod adalah pra-disusun di masa pemasangan, jadi proses pemasangan mengambil masa yang agak lama . Tambahan pula, ia juga sepadan dengan jejak memori yang lebih besar pada masa pelaksanaan. Ini bermakna lebih sedikit aplikasi berjalan serentak.

HTC Magic - salah satu daripada telefon pintar pertama berdasarkan sistem operasi Android

Apabila peranti Android pertama berada di pasaran (seperti HTC Magic ditunjukkan dalam gambar), ingatan dan simpanan kapasiti nyata lebih kecil dan menyampaikan kesesakan untuk prestasi. Ini adalah sebab mengapa pendekatan JIT adalah pilihan yang lebih pada masa itu. Hari ini, memori adalah jauh lebih murah dan dengan itu lebih banyak, walaupun pada peranti yang rendah-akhir, jadi ART merupakan satu langkah tepat ke hadapan.

Beberapa fakta tepat dan penanda aras

Seseorang dari Android Police membuat beberapa penanda aras terbaik, dan jika anda berminat untuk nombor yang tepat, lihat berikut pautan untuk maklumat lanjut.

Mari kita gambaran keseluruhan cepat keputusan penanda aras mereka:
-meningkat kelajuan dalam CPU operasi terapung oleh lebih kurang. 20%
-meningkat kelajuan dalam operasi RAM oleh lebih kurang. 10%
-meningkat kelajuan dalam operasi penyimpanan dengan lebih kurang. 10%
-Operasi integer CPU - sedikit kelebihan pergi ke Dalvik

Cantik dan kemas, setuju tak? Ada satu lagi yang tersembunyi, tetapi manfaat yang sangat penting dalam ART. Apabila anda meminta pengguna iPhone bagaimana mereka merasa tentang rupa dan rasa telefon pintar Android, mereka sering mengadu bahawa Android berasa laggy , walaupun pada hakikatnya perkakasan pada kedua-dua telefon adalah kedudukan tertinggi. Dilihat lag / kelewatan adalah hasil kompilasi JIT dan ia lebih kurang telah hilang selepas bertukar kepada ART.

Apa kesan-kesan yang tidak diingini pada aplikasi?

Pada masa ini, terdapat laporan bahawa beberapa aplikasi sedang tidak berfungsi apabila anda bertukar kepada ART, seperti Whatsapp dan Titanium Backup. Saya sendiri menyaksikan Whatsapp terhempas setiap kali pada aplikasi permulaan, jadi saya dihidupkan kembali ke Dalvik lagi.

nota: Artikel ini tulis pada 4 disember 2013 jadi terdapat banyak penambahbaikkan kpd ART kini.

Kesan ke atas proses pembangunan

Sebagai pemaju Android , setiap kali saya membuat beberapa perubahan yang saya mahu menguji, saya perlu memasang aplikasi contoh baru pada peranti. Seperti yang dinyatakan sebelum ini, ART menggunakan AOT penyusunan, yang memanjangkan memasang kali permohonan kerana bytecode Dalvik mendapat disusun kepada kod mesin. Oleh itu, setiap kali saya menggunakan versi baru aplikasi pada peranti saya, saya perlu menunggu untuk masa tambahan ini untuk lulus supaya aplikasi mengoptimumkan untuk runtime ART. Ini menyebabkan kelewatan dalam proses 'deployment'.

Masa yang diambil untuk menginstall di Nexus4 saya, untuk salah satu daripada projek-projek kami yang lebih besar, telah melonjak daripada ~ 17 s untuk ~ 25 s .

Kesimpulan

Secara peribadi, saya melihat peningkatan dalam kelajuan dan kelancaran ketika mengscrolling aplikasi. ART membuat UI berasa lebih responsif. Pada masa ini, ART tidak dioptimumkan sepenuhnya. Saya mengharapkan keputusan yang lebih baik pada masa akan datang, selepas Google memperoleh maklum balas dan membuat pengoptimuman tambahan. Seperti yang saya lihat, pengguna akhir pasti akan mendapat manfaat daripada penukaran runtime ini, apabila ART telah matang dan menjadi lebih stabil. Walau bagaimanapun, pemaju, yang sering menggunakan aplikasi, akan berasa lebih intensif kesan negatif yang berpanjangan kali memasang.

Android 5.0 dengan ART berfungsi sepenuhnya? Saya pasti berharap begitu!

Artikel asal:ART vs Dalvik - introducing the new Android runtime in KitKat

Tiada ulasan:

Catat Ulasan