2013-02-05 34 views
6

Tôi đã tăng giới hạn bộ nhớ java Xmx khi một ngoại lệ liên quan đến không gian vùng heap bị ném. Tuy nhiên, tôi hiện đang trải qua một thời gian thực hiện rất dài có thể là bộ nhớ có liên quan nhưng tôi đã không nhìn thấy ngoại lệ ném (chưa).JVM có hoán đổi vùng heap không?

Tôi tự hỏi điều gì có thể giải thích cho thời gian thực hiện dài. Liệu JVM có hoán đổi heap vào đĩa không?

Tôi đang sử dụng HotSpot 1.6.0 cập nhật 34.

+0

Hoán đổi là hành vi hệ điều hành mà tôi cho là. – StarPinkER

Trả lời

11

JVM không đổi sang đĩa, không. Hệ điều hành có thể làm như vậy. Bạn có thể phát hiện điều này bằng cách kiểm tra số liệu thống kê hệ điều hành của bạn trên quy trình.

Khi JVM hết bộ nhớ, việc thu thập rác được kích hoạt thường xuyên hơn và thường xuyên hơn. Mỗi lần chạy sẽ tiết kiệm ít bộ nhớ hơn, tăng tốc độ GC hơn nữa. Cuối cùng, rất nhiều thời gian dành cho GC, có khả năng là bạn sẽ thấy chậm.

JVM không đợi cho đến khi 0 byte được giải phóng để ném OutOfMemoryError. Nó sẽ thực sự bỏ khi GC chỉ đơn giản là mất quá nhiều so với số byte giải phóng.

2

Một hệ quả có thể xảy ra một đống lớn hơn là sự gia tăng trong thời gian GC - JVM có để phân tích một không gian lớn hơn, vì vậy nó mất nhiều thời gian - đặc biệt là nếu nó GC dừng chân.

Bạn có thể đưa ra câu hỏi của mình một chút không?

Bạn đang sử dụng kích thước heap nào? Bạn đang thấy những khoảng thời gian nào? Whats mẫu sử dụng của các đối tượng trong ứng dụng của bạn là gì? Ví dụ, một vài vật thể sống lâu hoặc rất nhiều vật thể sống ngắn.

+0

Tôi đặt Xmx thành 2GB và tôi đang trong quá trình thử lại với 3GB. Thực hiện chuỗi đơn đã ném ngoại lệ không gian heap với 2GB. Tôi đã chạy trong 15 phút với 3GB và nó đã không ném nhưng tôi không thể biết chắc chắn nếu 3GB là đủ kể từ khi tổng thời gian thực hiện sẽ là hàng trăm giờ. Nếu đánh dấu nước cao có khả năng bị trúng 15 phút, có vẻ như đáng giá khi sử dụng 3 GB làm giới hạn cho mạng lưới (9 nút) của tôi chạy. Tôi sẽ có 9 đối tượng chạy trên 9 nút với hy vọng là 1/9 thời gian. – H2ONaCl

Các vấn đề liên quan