Salah satu masalah yang paling sulit bagi developer aplikasi adalah membuat animasi yang mulus dan bebas gangguan. Masalah ini sangat sulit untuk di-debug saat sistem menjalankan juga tugas latar belakang yang menggunakan resource secara intensif. Mungkin sulit untuk menentukan apakah gangguan disebabkan oleh aplikasi atau sistem Anda. Namun, alat profiler dapat membantu Anda mengidentifikasi kemungkinan sumber perilaku buruk tersebut.
Merender di ChromeOS
Aplikasi yang disempurnakan, seperti game, biasanya menggunakan buffering ganda untuk mempertahankan waktu respons pengguna sesingkat mungkin. Namun, ada banyak hal yang dapat menurunkan performa. Misalnya, jika waktu perenderan frame terlalu lama, hasil yang dirender tidak siap untuk pertukaran buffer berikutnya, dan frame sebelumnya akan diulang.
Kemudian, perender tidak dapat memulai merender frame berikutnya, sehingga menyebabkan lebih banyak masalah. Skenario ini tidak asing lagi bagi developer seluler Android. Jika aplikasi berjalan di ChromeOS, konteksnya menjadi lebih rumit.
Aplikasi yang berjalan di desktop tidak dirender secara langsung ke frame tampilan layar. Sebagai gantinya, datanya dirender menjadi tekstur. Biasanya ada beberapa aplikasi yang merender grafisnya menjadi tekstur. Sistem membuat tampilan pada layar menggunakan compositor untuk menggabungkan semua tekstur menjadi satu gambar desktop tunggal.
Compositor bekerja secara transparan di latar belakang, tetapi alat ini mengakibatkan penundaan waktu satu frame guna memaksimalkan penggunaan pipeline GPU. Penundaan ini memperlancar fluktuasi performa sistem dan membantu menyeimbangkan beban asimetris.
Saat OS bekerja keras, GPU dapat ditekan, sehingga menyebabkan penundaan antara saat frame dirender dan saat frame muncul di layar. Sistem mungkin menggunakan buffering empat kali lipat untuk mengompensasi, bergantung pada hardware. Meskipun dengan buffering yang lebih mendalam, pipeline grafis mungkin tetap akan terganggu.
Tracer grafis ARC
ChromeOS memiliki alat profiling yang menunjukkan cara buffer melacak sistem, saat terjadi pertukaran memori, seberapa sibuk CPU/GPU, dan yang dilakukan aplikasi Anda pada waktu tertentu, seperti yang ditunjukkan pada gambar berikut:
Menyiapkan profiler
Untuk menggunakan profiler, Anda harus menjalankan M75 atau yang lebih baru. Untuk mendapatkan hasil terbaik, gunakan perangkat Intel.
Sebelum menggunakan profiler, buat seed aplikasi Anda dengan rekaman aktivitas.
Tambahkan Trace.traceCounter(Trace.TRACE_TAG_GRAPHICS, "Event", <number>); ke kode Anda
di mana pun Anda ingin menyertakan rekaman aktivitas. Gunakan Event yang dimulai dengan
awalan customTrace. Awalan tidak muncul dalam pesan rekaman aktivitas.
Untuk menyiapkan profiler, ikuti langkah-langkah berikut:
- Aktifkan mode developer.
- Aktifkan setelan Chrome dan aktifkan alat visualisasi buffer grafis ARC.
- Buka
chrome://arc-graphics-tracing
Menjalankan profiler
- Pilih berhenti saat terjadi gangguan.
- Jalankan aplikasi Android.
- Saat aplikasi Android aktif dan memiliki fokus, tekan
Control+Shift+G.
Saat gangguan terjadi, jendela browser akan muncul. Gunakan tombol W dan S untuk memperbesar dan memperkecil linimasa.