Karakteristik penggunaan memori aplikasi adalah aspek mendasar dari performanya. Anda dapat menggunakan System Profiler untuk menganalisis karakteristik ini dengan melihat informasi penghitung GPU yang tersedia.
Perangkat Adreno
Di perangkat Adreno, mulailah dengan menandai periode waktu yang konsisten dengan satu frame GPU seperti yang dijelaskan dalam Memperkirakan waktu pemrosesan frame CPU dan GPU. Gunakan teknik yang dijelaskan di halaman tersebut yang melibatkan penggunaan GPU % Utilization atau jalur penghitung serupa untuk batas waktu frame Anda karena jalur penghitung semuanya menggunakan teknik waktu yang sama dan akan memungkinkan perkiraan penggunaan memori yang lebih akurat (dibandingkan dengan menggunakan batas waktu frame yang berasal dari bagian GPU yang datanya dikumpulkan secara terpisah dari data jalur penghitung).
Total baca/tulis
Setelah menandai satu frame di profiler, mulailah dengan melihat penghitung Read Total (Bytes/sec) dan Write Total (Bytes/sec). Penghitung ini memberikan gambaran keseluruhan yang baik tentang jumlah data yang melintasi bus memori selama satu frame. Lakukan yang terbaik untuk meminimalkan jumlah data yang Anda kirim melalui bus, karena bandwidth memori adalah sumber besar konsumsi baterai di perangkat seluler.
Anda juga dapat memeriksa penghitung Vertex Memory Read (Bytes/Second) dan Texture Memory Read (Bytes/Second) untuk menentukan bagian bandwidth yang digunakan untuk data vertex dan tekstur.
Apa yang Anda anggap “baik” untuk nilai ini bergantung pada jenis beban kerja yang terlihat di aplikasi Anda. Misalnya, aplikasi 2D mungkin melihat bandwidth baca memori tekstur dalam jumlah yang relatif besar (~2+GB/dtk) digunakan, tetapi bandwidth memori vertex mungkin sangat minimal (~50MB/dtk). Untuk mengetahui detail selengkapnya, lihat dokumentasi untuk Menganalisis bandwidth memori vertex dan Menganalisis penggunaan bandwidth memori tekstur.
Kios pengambilan
Lihat penghitung % Vertex Fetch Stall, % Texture Fetch Stall, dan % Stall on System Memory karena penghitung ini akan memberi Anda beberapa petunjuk tentang performa memori keseluruhan aplikasi kita. Jika nilainya lebih tinggi dari sekitar 5%, hal ini menunjukkan bahwa aplikasi Anda tidak menata data dalam memori secara efisien atau mengakses datanya secara efisien untuk memanfaatkan cache. Lihat Menganalisis bandwidth memori vertex dan Menganalisis penggunaan bandwidth memori tekstur untuk mengetahui detail tentang cara meningkatkan penggunaan memori untuk jenis aset ini.
Perangkat Mali
Di perangkat Mali, mulailah dengan menandai periode waktu yang konsisten dengan satu frame GPU seperti yang dijelaskan dalam Memperkirakan waktu pemrosesan frame CPU dan GPU. Gunakan teknik yang dijelaskan di halaman tersebut yang melibatkan penggunaan GPU % Utilization atau jalur penghitung serupa untuk batas waktu frame Anda karena jalur penghitung semuanya menggunakan teknik waktu yang sama dan akan memungkinkan perkiraan penggunaan memori yang lebih akurat (dibandingkan dengan menggunakan batas waktu frame yang berasal dari bagian GPU yang datanya dikumpulkan secara terpisah dari data jalur penghitung).
Total Eksternal Output
Setelah menandai satu frame di System Profiler, mulailah dengan melihat penghitung Output External Read bytes Output External Write bytes. Penghitung ini memberikan gambaran keseluruhan yang baik tentang jumlah data yang melintasi bus memori selama satu frame. Lakukan yang terbaik untuk meminimalkan jumlah data yang Anda kirim melalui bus, karena bandwidth memori adalah sumber besar konsumsi baterai di perangkat seluler.
Total internal input
Ada juga penghitung yang memberi Anda informasi tentang cache itu sendiri. Penghitung yang Anda minati adalah “Input internal [read|write] stall cycles”. Nilai yang lebih tinggi untuk penghitung ini berarti Anda berhasil mengakses cache, tetapi ada terlalu banyak permintaan baca yang dibuat dan akibatnya kode shader terhenti menunggu untuk mendapatkan akses ke memori.
Kios pengambilan
Kumpulan penghitung berikutnya yang dapat Anda lihat adalah penghitung Vertex Prefetcher Stall Cycles dan Texture Fetch Stall karena penghitung ini akan memberi Anda beberapa petunjuk tentang performa memori keseluruhan aplikasi kita. Jika Anda melihat nilai yang lebih tinggi dari ~5%, hal ini menunjukkan bahwa Anda tidak menata data dalam memori secara efisien atau mengakses data secara efisien untuk memanfaatkan cache. Lihat artikel Menganalisis Bandwidth Memori [Vertex|Tekstur] untuk mengetahui detail tentang cara meningkatkan penggunaan memori untuk jenis aset ini