Kesalahan pemahaman Garbage Collector

Java adalah salah satu bahasa pemrograman yang menurut cukup mudah dipelajari. Salah satu yang membuatnya jadi lebih mudah adalah adanya fasilitas Garbage Collector. Dengan adanya fitur ini, setiap object yang sudah tidak digunakan lagi maka akan ditangani oleh garbage collector secara otomatis.

Karena kemampuan Garbage Collector tersebut, membuat kita kurang memperhatikan pembuatan object yang akhirnya membuat aplikasi yang kita buat jika makin lama digunakan akan semakin banyak menghabiskan memory komputer kita. Jika diteruskan akan muncur exception :

  • Java.lang.OutOfMemoryError: Java heap spac
  • Java.lang.OutOfMemoryError: PermGen space

Hal seperti diatas juga saya alami, sempat bingung juga mencari solusi buat mengatasi masalah itu. Solusi yang saya terapkan adalah memperbesar jatah memory untuk aplikasi kita dengan menggunakan JVM parameter xms dan xmx. Pada awalnya opsi tersebut berhasil menanggulangi kekurangan memory yang diperlukan tetapi hanya berlangsung sementara saja, karena semakin lama aplikasi berjalan, memory yang dibutuhkan akan semakin besar.

Pada awalnya saya sendiri beranggapan bahwa java membutuhkan memory yang sangat besar walaupun aplikasi yang kita buat dalam skala kecil, hampir frustasi sebenarnya dan hampir pindah ke lain hati.

Ternyata permasalahan yang dihadapi adalah berkaitan dengan dasar dasar bahasa Java itu sendiri, yaitu tentang pembuatan object. Karena kita terlalu menganggap enteng dan berfikir bahwa setiap object yang kita buat akan dihapus dari memory oleh Garbage Collector secara otomotis, membuat kita mengabaikan object yang telah kita buat. Padahal, setiap object yang kita buat akan selalu aktif di memory dan akan membuat aplikasi semakin rakus memory selama kita belum melepaskan object tersebut.

Untuk detail penyelesaian permasalah diatas, akan ditulis pada post berikutnya. 😀

, , , , ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: