2012-02-17 42 views
5

Công cụ giám sát bộ nhớ của Netbeans (thực tế là một công cụ tương tự như VisualVm) có một số liệu liên tục để theo dõi rò rỉ bộ nhớ: Số liệu tạo ra còn sống sót.Tìm hiểu về các thế hệ còn sống Số liệu

Một definition of this metric có thể được tìm thấy trên oracle.com:

  • một thế hệ là một tập hợp các trường hợp tạo ra trong khoảng thời gian GC cùng (giữa hai bộ sưu tập rác)
  • một thế hệ còn sống sót là một thế hệ mà sống sót ít nhất một bộ sưu tập rác. Số lượng bộ sưu tập rác còn sống - tuổi của thế hệ - là mã định danh duy nhất của nó
  • Giá trị thế hệ còn lại (số liệu) là số lượng các thế hệ còn sống khác nhau hiện đang tồn tại trên heap (số Thế hệ với các thế hệ khác nhau)

Tôi có câu hỏi về định nghĩa thứ hai. Tôi biết ý nghĩa của một ví dụ để tồn tại một bộ sưu tập rác. Nhưng tôi không chắc ý nghĩa của việc tạo ra thế hệ để tồn tại một bộ sưu tập rác. Điều đó có nghĩa là ít nhất một trường hợp của thế hệ này vẫn tồn tại trong bộ sưu tập rác?

+0

Chỉnh sửa nhỏ: Công cụ giám sát bộ nhớ của Netbeans không phải là một VisualVM được nhúng. VisualVM chứa phiên bản rút gọn của NetBeans Profiler. Cấu hình CPU và bộ nhớ trong VisualVM dựa trên mã NetBeans Profiler. –

+0

Cảm ơn thông tin. Tôi đã cập nhật câu hỏi của mình. – barjak

Trả lời

4

Có. Về cơ bản có nghĩa là, trong số các trường hợp, đã được tạo ra giữa bộ sưu tập rác X và X + 1, có một số, hiện đang còn sống, khi có nhiều bộ sưu tập rác đã xảy ra.

Theo ý kiến ​​của tôi, cả ba định nghĩa chỉ có ý nghĩa đối với mỗi lớp. Ý tôi là, "Giá trị thế hệ còn sống sót (số liệu)" của lớp đã cho là số lượng Thế hệ khác nhau của lớp này hiện đang còn sống trên heap.

+0

Có, cảm ơn vì đã chỉ ra rằng NetBeans/VisualVM có thể cung cấp số liệu này cho mỗi lớp. Và nó thực sự là một thông tin rất hữu ích để theo dõi rò rỉ bộ nhớ! – barjak

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