Đối với dân lập trình trên nền tảng mã nguồn mở thì thông báo lỗi OutOfMemory trong java đã quá quen thuộc. Thông báo này có thể sẽ xuất hiện trong quá trình Bạn chạy chương trình. Đặc biệt là các thuật toán hay chương trình có sử dụng bộ nhớ tương đối lớn thì lỗi này càng dễ phát sinh.
Nguyên nhân nào dẫn đến OutOfMemory?
OutOfMemory trong java thực chất là một ngoại lệ (Exception). Máy ảo Java sử dụng bộ nhớ Heap để chạy chương trình. Khi máy tính không đủ bộ nhớ Heap để cung cấp cho hoạt động của chương trình thì gọi là hiện tượng “tràn bộ nhớ”. Lúc này Java sẽ ném ra một ngoại lệ OutOfMemory.
Dung lượng bộ nhớ Heap
Theo mặc định, khi cài đặt Java thì bộ nhớ Heap được cung cấp tối đa bằng ¼ dung lượng bộ nhớ chính (RAM). Tuy nhiên, Tùy vào chương trình của Bạn sử dụng bộ nhớ nhiều hay ít mà thay đổi giá trị này cho phù hợp. Bài viết này hướng dẫn cách thay đổi dung lượng tối đa của bộ nhớ Heap trên Eclipse.
Thay đổi dung lượng bộ nhớ Heap
Trên cửa sổ Project Explorer, click chuột phải vào file chạy chương trình (file có chứa hàm main). Sau đó chọn Run As rồi Chọn Run Configuration.
Trên cửa sổ hiện ra, chọn file có chứa hàm Main > Chọn tab Arguments. Tiếp theo, nhập giá trị -Xmx4096m vào 2 ô Program arguments và VM arguments như hình. Trong đó: –Xmx là ký hiệu nhận diện giá trị max; 4096m là 4096MB dung lượng cung cấp cho Heap, tương đương 4GB. Bạn có thể thay đổi thành giá trị khác cho phù hợp. Cuối cùng chọn Run để chạy chương trình với bộ nhớ Heap đã thay đổi.
Vậy là xong cách xử lý OutOfMemory trong java cực kỳ đơn giản. Chúc các Bạn thành công!