2012-02-01 29 views
15

Tôi đã cố gắng hiểu cấu trúc bộ nhớ của HotSpot JVM và bị nhầm lẫn với hai cụm từ 'Phương pháp Khu vực' và 'PermGen'. Các tài liệu tôi gọi là Khu vực Phương pháp chứa định nghĩa về các lớp và các phương thức bao gồm cả mã byte. Một số tài liệu khác nói rằng chúng được lưu trữ trong không gian PermGen.Khu vực Phương pháp và PermGen

Vì vậy, tôi có thể kết luận rằng hai vùng bộ nhớ này giống nhau không?

+0

Cập nhật: Từ java8 trên các từ không có PermGen, Và tất cả các lớp, phương thức, thực thể chuỗi được lưu trữ trong Metaspace. Link: http://karunsubramanian.com/websphere/one-important-change-in-memory-management-in-java-8/ –

Trả lời

11

Bạn nên xem Java Memory Types và tùy chọn tại tài liệu này về số Garbage Collection trong Java. Sau này là rất tiết và cả hai đều hữu ích.

Trên thực tế khu vực Phương pháp là một phần của thế hệ thường trú:

Một thế hệ thứ ba liên quan chặt chẽ đến thế hệ tenured là thế hệ vĩnh viễn . Thế hệ vĩnh viễn là đặc biệt bởi vì nó giữ dữ liệu cần thiết bởi máy ảo để mô tả các đối tượng làm không có sự tương đương ở cấp độ ngôn ngữ Java. Ví dụ: đối tượng mô tả các lớp và phương pháp được lưu trữ trong thế hệ vĩnh viễn .

5

Bạn có thể xem xét các "Phương pháp Diện tích" một tập hợp con của "PermGen", như không gian thế hệ vĩnh viễn không giữ defintions lớp, nhưng nó cũng nắm giữ thực tập nội trú Strings và bit khác của dữ liệu dường như không bao giờ bị loại bỏ,

+0

Nhưng nó không chỉ là tập con PermGen, có thể có một Vùng Phương pháp nằm ngoài không gian PermGen, phải ? – falsarella

+1

Không, sự hiểu biết của tôi là tất cả các loại dữ liệu đó đều nằm trong PermGen. –

+1

Cập nhật: Chuỗi được lưu trữ trong kho chính từ Java 7 trở đi. http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html#jdk7changes –

3

Khu vực phương pháp về cơ bản là không gian không phải là vùng heap giống như ngăn xếp giữ bộ xương lớp. skeleton bao gồm các biến tĩnh với các giá trị, các hàm tạo, vv Các hoạt động phản xạ được vận hành trên vùng bộ nhớ này. Perm là một không gian bộ nhớ song song với heap với việc giữ mã nhị phân của lớp thi hành hiện tại.

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