2010-09-08 36 views
13

Tôi đã sử dụng công cụ Phân tích bộ nhớ Eclipse để kiểm tra một bãi chứa đống. Tôi đã không nhìn thấy bất kỳ trường hợp mà một đối tượng đã được giữ sống bởi một biến địa phương trong một ngăn xếp thread.Vùng chứa heap Java có bao gồm ngăn xếp luồng

Ngăn xếp chuỗi java có được lưu giữ trong vùng lưu trữ heap không? Nếu không, các đối tượng này có được tính là các đối tượng không thể truy cập được trong bãi chứa không? Nếu vậy, có cách nào để bảo quản ngăn xếp luồng sao cho rác không được thu thập có thể được phân biệt với các giá trị biến cục bộ không?

Trả lời

12

Heap bãi từ gần đây hơn JVM (như năm 2010) bao gồm Stacks Chủ đề. Bộ phân tích bộ nhớ Eclipse 0.8 (được phát hành vào tháng 1 năm 2010) bao gồm hỗ trợ để trích xuất thông tin này: http://www.eclipse.org/mat/0.8/noteworthy.html

1

Không, ngăn xếp luồng tách biệt với các vùng lưu trữ.

Làm thế nào để bạn tạo vùng lưu trữ heap? jmap? Nếu vậy, theo mặc định, only live objects are dumped. Điều này có nghĩa là bạn sẽ không thấy các đối tượng không thể truy cập được. Có vẻ như bạn đang bị rò rỉ bộ nhớ hay gì đó. Tôi khuyên bạn nên sử dụng JVisualVM hoặc trình biên tập tinh vi hơn.

0

đối tượng chắc chắn có thể truy cập được ngay cả khi chỉ có một biến cục bộ tham chiếu đến nó. hãy thử điều này:

MyClass 
    main 
     obj = new ... 
     obj.doSomethingThatTakes30Minutes() 

obj shoudl xuất hiện trong vùng lưu trữ.

6

Dấu vết ngăn xếp không được giữ nguyên nhưng tham chiếu đối tượng trong ngăn xếp được giữ nguyên.

SELECT DISTINCT * FROM OBJECTS (SELECT OBJECTS 
${snapshot}.getOutboundReferentIds(thread.getObjectId()) 
FROM INSTANCEOF java.lang.Thread thread) 

Truy vấn OQL này chọn tất cả các đối tượng được đề cập bởi các chủ đề Java (java.lang.Thread và subclasses). Bộ này bao gồm tất cả các biến Java Local cùng với bất kỳ đối tượng nào khác được tham chiếu bởi các cá thể luồng Java.

+0

Truy vấn của bạn có lỗi cú pháp trong 'visualvm' và' jhat'. Bạn có thể sửa nó không? – gavenkoa

+0

Dường như truy vấn này cho Eclipse MAT. – gavenkoa

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