Saat bekerja pada proyek game untuk Android saya sedang menggali untuk beberapa informasi tentang optimasi kinerja untuk kode game. Dan saya jadi tahu bahwa penggunaan Java Collections seperti List, Arraylist dll tidak dianjurkan dalam kode permainan, meskipun koleksi adalah alat yang berguna dalam pemrograman Java. Mengapa begitu? Saya ingin mengetahui detail teknis seberapa besar dampak kerangka kerja Collection terhadap sistem Android dan mengapa? Bantuan apa pun dalam hal ini akan luar biasa.
10
Jawaban:
Sebagian besar tentang alokasi memori dan pengumpulan sampah. Alokasi memori selama runtime memberi pemulung Anda peluang untuk mengeluarkan sampah. Yang menyakitkan kinerja Anda. GC harus terjadi sesering mungkin.
Sebagian besar koleksi java:
A) Alokasikan lebih banyak memori daripada yang mereka butuhkan.
B) Alokasikan memori ketika Anda tidak menginginkannya.
C) Alokasikan memori untuk setiap iterator saat iterasi melalui koleksi.
Untuk menghindari hal-hal ini:
A) Mengalokasikan koleksi dengan ukuran tetap. yaitu. buat kumpulan objek.
B) Alokasikan pool ini di init program.
C) Hindari metode for (Object obj: collection) untuk tipe-tipe koleksi yang memiliki ukuran () dan .get (int index).
sumber