2012-06-12 6 views
13

Tôi đang gặp vấn đề về không gian heap. Chương trình của tôi rất đơn giản. Có hai diễn viên (gửi & nhận được) "gửi" diễn viên là đi qua 10000 đối tượng mỗi giây để "nhận", và nhận được xuất bản những đối tượng. người nhận đã nhận được đối tượng đang được lưu trong container nhưng container được làm trống mỗi giây. Vì vậy, không có cơ hội container đang hết dung lượng. Bây giờ sau khi 420000 đối tượng giày eclipse của tôi một lỗi nói rằng "cập nhật ioconsole đã gặp phải vấn đề". Và khi tôi goto vào chi tiết tôi thấy lỗi Lỗi nội bộ :: Vùng heap JavaHết dung lượng heap

Tôi đã thử tăng kích thước vùng heap. Kích thước Heap của tôi là 8096m và maxpermsize là 4096

Tôi đang theo dõi mã của mình bằng visualVm và tôi nhận thấy rằng nó không vượt quá kích thước heap. Hoàn toàn trống như cách khắc phục sự cố.

Một số người có thể cho tôi biết các tình huống có thể xảy ra khác có thể dẫn đến các lỗi như vậy.

Trả lời

35

IOConsole là một lớp nhật thực, không phải là chương trình của bạn. Bạn đang in ấn với System.out rất nhiều? Trong Cửa sổ> Tuỳ chọn tìm kiếm cho "bảng điều khiển". Đặt một số loại giới hạn cho tất cả bộ đệm bảng điều khiển. Thử in ít đầu ra hơn từ chương trình. Có thể đăng nhập vào một tập tin để thay thế.

+0

Tôi không thể tìm thấy dòng printf vì nó được thực hiện bởi tệp lagback.xml. Khi thay đổi trạng thái trong tệp đó, các dòng nhật ký đã bị giảm và lỗi đã bị giảm. Cảm ơn rất nhiều .. – Rags

+0

bỏ chọn 'Fixed Width Console' đã giải quyết được ... – KillBill

5

Bạn có thể thêm args JVM sau để cung cấp cho bạn một ý tưởng về việc sử dụng bộ nhớ và những gì GC được thực hiện:

-Xloggc:/tmp/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps 
3

Vấn đề này đã xảy ra do kích thước bộ đệm trong giao diện điều khiển.

Giải pháp:

Right Click Console -> Preferences

giới hạn giao diện điều khiển.

0

Tôi đã gặp sự cố và tôi đã cố giải quyết vấn đề bằng cách thay đổi cài đặt vùng đệm và bộ đệm trong nhật thực. Tuy nhiên tôi không thể giải quyết nó. Sau đó, tôi nhận thấy có một rò rỉ bộ nhớ trong chương trình của tôi và số lượng các chủ đề tăng theo thời gian. Vấn đề đã được giải quyết sau khi tôi đã sửa lỗi. Tôi nghĩ rằng rò rỉ bộ nhớ không phải là lý do có thể xảy ra nhất cho nó nhưng nó nên được xem xét.