Saturday, March 14, 2015

Optimisasi Memory Menggunakan Bit Flag

Pada kesempatan kali ini, Penulis akan memberikan contoh optimisasi memori untuk boolean flags. Contoh kasus berupa penggunaan flags untuk GUI. Berikut contoh potongan code yang tanpa dioptimasi:



Program tersebut jika dijalankan, hasilnya akan seperti berikut : 


Program tersebut benar dan tidak ada yang salah pada logika maupun hasilnya. Namun, bisa dibayangkan, jika dalam sebuah aplikasi, kita membuat ratusan bahkan ribuan object TestGui, maka memory yang digunakan hanya untuk menyimpan flag tersebut akan cukup besar.

Contoh perhitungannya : Misal kita membuat object TestGui sebanyak 1000.
Maka untuk menyimpan flag di memory membutuhkan 1000 (object) x 9 (flag property) x 16 bytes (boolean memory size) = 144000 bytes.

Hal ini dapat kita optimasi menggunakan bit flag. Code di atas, jika kita optimasi, hasilnya akan seperti ini:


Jika kita jalankan program tersebut :


Hasilnya sama bukan? Namun coba kita hitung memory yang digunakannya.
Misal kita membuat 1000 object TestGuiBitFlag, maka memorynya : 1000 (object) x 1 (parameter flag) x 32 bytes (int memory size) = 32000 bytes. Terlihat sekali bedanya, bukan?

Jadi kita hanya memerlukan 1 parameter flag int untuk setiap objectnya. Sekian tips dari penulis, semoga bermanfaat. :)


No comments:

Post a Comment