Tôi đang theo dõi ứng dụng Java của mình (viết bằng JDK 1.7
) sử dụng VisualVM
. Sau đây là biểu đồ hiển thị mức sử dụng bộ nhớ heap trong khoảng thời gian mà ứng dụng này chạy.VisualVM: Biểu đồ Sử dụng Bộ nhớ Heap Lý tưởng
Nhìn vào biểu đồ này những người thấy rằng có rất nhiều gai trong đó. Những đột biến này cho biết việc tạo ra các đối tượng bằng ứng dụng. Một khi ứng dụng được thực hiện với chúng, nó sẽ phá hủy chúng bằng cách sử dụng gc (được gọi ngầm trong trường hợp này).
Ngoài ra, đây là một ảnh chụp màn hình của bộ nhớ profiler khi ứng dụng vẫn chạy
Đối với tôi bản chất lên xuống của đồ thị chỉ ra việc sử dụng hiệu quả của các đối tượng java. Liệu suy luận này có đúng không?
Bản chất lý tưởng của đồ thị sử dụng đống mà người dùng nên nhắm đến là gì?
Có cách nào khác để tôi có thể cải thiện việc sử dụng bộ nhớ heap bằng ứng dụng của mình không?
Rất nhiều đột biến cho chương trình hiển thị phù hợp sẽ tạo ra nhiều đối tượng sống ngắn hơn theo thời gian. Có thể, điều này có thể được tối ưu hóa. –
Việc sử dụng bộ nhớ của bạn trông hoàn toàn tốt đẹp –
@VictorSorokin JVM GC xử lý rất nhiều đối tượng sống ngắn khá tốt. Đây không phải là một vấn đề. – pickypg