Wednesday, February 18, 2004
Menarik gak artikel tentang java garbage collector tu. Kesimpulan:
1. Dlm kebanyakan keadaan, hasilkan object baru adalah murah dan cepat, bahkan lebih cepat dpd object allocation dlm C!! Disebabkan ini, usahlah risau utk menghasilkan object2 sementara krn menghasilkannya dan memusnahkannya ada amat cepat dlm Java. Dan, tak perlu bersusah payah menggunakan object pool kecuali utk object yg memang lambat atau resource terhad spt connection pool. Penggunaan object pool utk object2 mudah hanya menambahkan komplex program kita, tanpa apa2 faedah yg besar krn JVM generasi baru begitu power!
2. Usah null kan reference spt:
List list = new ArrayList();
//guna list...
list = null;
Jenis code diatas tak perlu lagi, bahkan kalau salah guna akan melambatkan, bukan mempercepatkan.
3. Usah paksa java garbage collector utk melakukan garbage collection dgn arahan Systen.gc() krn penggunaan ini pun mampu melambatkan sistem, bukan mempercepatkan.
Secara keseluruhan, ketiga2 perkara diatas ni, yg banyak direcommendkan suatu ketika dulu utk meningkatkan kelajuan sistem, dah tak sah lagi utk JVM generasi kini. Tapi, masih wujud keadaan yg masih sah utknya, walaupun dah teramat berkurangan spt utk real time system.
Semua penambahan kelajuan sistem kita ni, ada dgn bertukar JVM kpd version yg lebih baru, tanpa perlu merubah source code, mahupun recompile balik. Best kan?
Satu lagi, yg ke 4. Elakkan penggunaan finalize dlm java class kecuali jika dah teramat la terpaksanya krn ia mampu melambatkan java gc dan amat ketara sekali. Cari la jalan lain supaya tak perlu guna finalize.
1. Dlm kebanyakan keadaan, hasilkan object baru adalah murah dan cepat, bahkan lebih cepat dpd object allocation dlm C!! Disebabkan ini, usahlah risau utk menghasilkan object2 sementara krn menghasilkannya dan memusnahkannya ada amat cepat dlm Java. Dan, tak perlu bersusah payah menggunakan object pool kecuali utk object yg memang lambat atau resource terhad spt connection pool. Penggunaan object pool utk object2 mudah hanya menambahkan komplex program kita, tanpa apa2 faedah yg besar krn JVM generasi baru begitu power!
2. Usah null kan reference spt:
List list = new ArrayList();
//guna list...
list = null;
Jenis code diatas tak perlu lagi, bahkan kalau salah guna akan melambatkan, bukan mempercepatkan.
3. Usah paksa java garbage collector utk melakukan garbage collection dgn arahan Systen.gc() krn penggunaan ini pun mampu melambatkan sistem, bukan mempercepatkan.
Secara keseluruhan, ketiga2 perkara diatas ni, yg banyak direcommendkan suatu ketika dulu utk meningkatkan kelajuan sistem, dah tak sah lagi utk JVM generasi kini. Tapi, masih wujud keadaan yg masih sah utknya, walaupun dah teramat berkurangan spt utk real time system.
Semua penambahan kelajuan sistem kita ni, ada dgn bertukar JVM kpd version yg lebih baru, tanpa perlu merubah source code, mahupun recompile balik. Best kan?
Satu lagi, yg ke 4. Elakkan penggunaan finalize dlm java class kecuali jika dah teramat la terpaksanya krn ia mampu melambatkan java gc dan amat ketara sekali. Cari la jalan lain supaya tak perlu guna finalize.
Comments:
Post a Comment