2014-10-20 15 views
26

Tôi đã tạo ra một khối đống từ ứng dụng java của tôi đã chạy trong một số ngày với công cụ jmap -> kết quả này trong tệp kết xuất đống nhị phân lớn.Làm thế nào tôi có thể phân tích một đống lưu trữ trong IntelliJ? (bộ nhớ bị rò rỉ)

Làm thế nào tôi có thể thực hiện phân tích bộ nhớ của bãi chứa đống này trong IntellIJ IDEA?

Tôi biết rằng có các công cụ cho Eclipse và Netbeans nhưng tôi muốn sử dụng IDEA nếu có thể.

Kết quả cơ bản của phân tích sẽ cho tôi biết số lượng cá thể của từng đối tượng trong bộ nhớ, mỗi lớp, cho phép tôi có thể bắt đầu gỡ lỗi rò rỉ bộ nhớ.

Trả lời

23

Điều tốt nhất hiện có là Memory Analyzer (MAT), IntelliJ không có bất kỳ trình phân tích kết xuất vùng đống nào.

+4

MAT có plugin cho IntelliJ không? – johnsam

-1

Bạn có thể cài đặt plugin JVisualVM từ đây: https://plugins.jetbrains.com/plugin/3749?pr=

này sẽ cho phép bạn phân tích các bãi chứa trong các plugin.

+2

Plugin này là lỗi thời. – Meo

+0

Cảm ơn! Tôi sẽ điều tra cả hai plugin trước khi chấp nhận một trong các câu trả lời – vikingsteve

7

Bạn cũng có thể sử dụng Trình khởi chạy VisualVM để khởi chạy VisualVM từ bên trong IDEA. https://plugins.jetbrains.com/plugin/7115?pr=idea Cá nhân tôi tìm thấy điều này thuận tiện hơn.

+0

OK, cảm ơn. Plugin này dường như yêu cầu tôi chạy quá trình java cục bộ - điều đó có đúng không? Tôi muốn xuất heap dump từ một máy chủ, sao chép nó vào máy cục bộ của tôi và phân tích nó ở đây. – vikingsteve

+2

Plugin này chỉ khởi động VisualVM và mở ứng dụng mong muốn trong đó. Nó không có gì để làm với trường hợp của bạn. Bạn có thể bắt đầu VisualVM bằng tay và mở bãi chứa. – Meo

4

Cũng tồn tại 'Trình xem bộ nhớ gỡ lỗi JVM' được tìm thấy trong kho lưu trữ plugin, điều này có thể hữu ích.

+3

Plugin không tương thích với các phiên bản IDEA sau 2017.1. Chế độ xem bộ nhớ có sẵn trong hộp trong IDEA 2017.1. https://plugins.jetbrains.com/files/8537/screenshot_16824.png –

-1

Tôi chỉ cần cài đặt một plugin có tên JVM Bugger Analyzer, nó hoạt động tốt!

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