Cara menguji kinerja tampilan Kustom
Saya ingin menguji performa rendering UI komponen Kustom saya. Saya menggunakan kasus uji berikut untuk memeriksa kinerja rendering.
private long getLayoutTime(int layoutRes) {
final Context targetContext = getInstrumentation().getTargetContext();
final LayoutInflater layoutInflater = LayoutInflater.from(targetContext);
final long startTime = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
final View view = layoutInflater.inflate(layoutRes, null);
view.setLayoutParams(new ViewGroup.LayoutParams(0, 0));
view.measure(View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
final int measuredHeight = view.getMeasuredHeight();
final int measuredWidth = view.getMeasuredWidth();
view.layout(0, 0, measuredWidth, measuredHeight);
}
return System.currentTimeMillis() - startTime;
}
Dengan menggunakan kode ini saya dapat menguji waktu render tata letak. Sehingga saya mengubah desain tata letak untuk kinerja yang lebih baik. Sekarang saya membuat kelas tampilan Kustom dengan beberapa tata letak dan komponen seperti gambar, tampilan teks, dan lain-lain. Saya akan melampirkan kelas tersebut pada waktu proses dan komponen akan dibuat pada waktu proses berdasarkan pada respons server. Saya tidak akan melampirkan komponen khusus ini dalam XML. Sekarang saya ingin menguji performa rendering tampilan kustom ini. Tolong sarankan saya alat atau cara apa pun untuk menghitung waktu rendering UI untuk tampilan kustom.
Gambar Profiler saya.

Jawaban
Anda dapat dengan mudah mengukur kinerja dengan menggunakan alat profiler bawaan studio android (di panel kiri bawah). penting: kinerja tampilan pelanggan tergantung pada perangkat yang berjalan di sini adalah contoh yang telah saya uji untuk redmi 7a
perangkat: redmi 7a RAM: 2GB
private fun startTest() {
for (x in 0..10000) {
val textview = TextView(this)?.apply { text = "Dummy Text $x" }
mLinearLayout?.addView(textview)
}
}
- menjalankan sebuah proyek
- mulai profiler, tunggu hingga grafik menjadi normal
- pada tombol Klik startTest (), Anda akan melihat grafik menjadi normal ke tinggi
- pilih area yang mencakup grafik area tinggi dan lihat waktu mulai dan waktu berakhir
- gunakan kalkulator sederhana dan ukur perbedaan
hasil uji kasus saya: menambahkan textview 10000 kali dalam linearlayout membutuhkan 32,411s (info perangkat diberikan di atas)
