Tôi đã theo dõi ứng dụng java của mình bằng profiler để biết rò rỉ bộ nhớ. Và tôi đã nhận lớp mà dùng gần 80% bộ nhớ đó làLàm cách nào để tăng mức ưu tiên của FinalizerThread để thu thập các đối tượng trong GC
java.lang.ref.Finalizer
Sau đó, tôi google nó cho lớp trên và tìm thấy bài viết tuyệt vời http://www.fasterj.com/articles/finalizer1.shtml
Bây giờ có thể bất kỳ một đề nghị tôi làm thế nào để tăng ưu tiên FinalizerThread để thu thập các đối tượng đó trong GC.
Một điều nữa tôi đang phải đối mặt với vấn đề này trên Linux với phiên bản kernel Linux 2.6.9-5.ELsmp (i386) và Linux 2.6.18-194.17.4.el5 (i386) nhưng nó làm việc tốt (không có Lỗi OOM) trên Linux 2.6.18-128.el5PAE (i386).
Sự cố này có phải do hạt nhân Linux không? Có biến JVM nào để cải thiện ưu tiên của FinalizerThread không?
Thanx trước.
Câu hỏi hay, tôi nghĩ bạn cần nói chung giảm thiểu việc sử dụng Finalizers. –
Có lẽ ở chế độ PAE, bạn chỉ cần có nhiều bộ nhớ hơn (không phải PAE được giới hạn ở 4GB) - hãy kiểm tra 'free'. Tôi không nghĩ rằng phiên bản hạt nhân được chơi ở đây. –
Cảm ơn Dan, Như Peter đã đề xuất bên dưới, tôi hiện đang kiểm tra với hệ thống tệp. – user1041580