java.lang.OutOfMemoryError: Java Heap Space

Beberapa waktu lalu atau lebih tepatnya beberapa jam yang lalu, saya cukup kerap menemui pesan  java.lang.OutOfMemoryError: Java Heap Space. Pesan ini menunjukkan bahwa Java VM kekurangan memori untuk menjalankan aplikasi atau program tersebut. Akibatnya, program yang berusaha kita jalankan akan gagal untuk dijalankan.

Java Heap Memory adalah memori yang disediakan oleh Java VM ketika hendak menjalankan suatu program. Secara otomatis pada komputer 32 bit, Java VM akan mengalokasikan 64 M. Dengan ukuran tersebut sebenarnya untuk program biasa mungkin sudah mampu menampung banyak objek baik itu objek berupa string. Namun, kadang untuk operasi tertentu terutama yang terkait dengan teks seperti yang hendak saya lakukan, jumlah tersebut ternyata masih kurang.

Nah, ternyata disinilah peran dari Garbage Collector pada Java. Ya, Garbage Collector lah yang bertanggung jawab dalam membersihkan Java Heap Memory ini. Secara singkat, dalam Java Heap Memory ini, objek yang ada di dalamnya dibagi dalam tiga generasi. Pembedaan generasi inilah yang akan digunakan dalam proses Garbage Collector. Jadi analogi mudahnya, Gerbage Collector inilah yang akan menghilangkan objek-objek pada Java Heap Memory yang telah mati sehingga tempat memori tersebut dapat digunakan kembali oleh objek lainnya. Kapan-kapan saya akan bercerita mengenai Garbage Collector.

Ada beberapa tips ketika menghadapi hal ini, antara lain :

1. Coba untuk meningkatkan kapasitas Java Heap Memory. Untuk meningkatkannya dengan menggunakan perintah tambahan ketika hendak menjalankan program yaitu -Xmx[besar memori]m. Jika kita menggunakan IDE seperti Netbeans, tambahan perintah tersebut ditambahkan melalui propertise project.

Perintah Untuk Meningkatkan Java Heap Memory melalui Netbeans

2. Lakukan Garbage Collector. Nah, untuk melakukan ini, menurut saya paling seru jika menggunakan Visual Virtual Machine. Dengan menggunakan kakas tersebut, selain dapat melakukan Garbage Collector sewaktu-waktu (karena disediakan tombol disana), juga dapat mengetahui aktifitas dari seluruh objek pada aplikasi kita. Selain itu, beberapa informasi terkait performa juga dapat dilihat seperti CPU, memory, thread, dll. Visual VM juga menyediakan untuk profiling aplikasi sehingga bisa dilakukan analisis lebih lanjut. Untuk heap dan thread, kita juga dapat menggunakan Heap Dump dan Thread Dump untuk menganalisis aplikasi kita. Seru bukan?

Virtual VM

Virtual VM Lagi

Yup, sekian cerita tentang Java Heap Memory dan semoga bisa membantu. 🙂

Oiya, kalau mau mengunduh Virtual VM dapat diklik di sini : virtual VM

Iklan

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s