2012-06-13 35 views
7

Tôi đang nghiên cứu java và tôi nhớ đọc ở đâu đó rằng đối tượng java, có một số chi phí bên trong JVM, được sử dụng vì lý do quản trị bởi máy ảo. Vì vậy, câu hỏi của tôi là, ai đó có thể cho tôi biết nếu và làm thế nào tôi có thể nhận được tổng kích thước của một đối tượng trong JVM HotSpot, cùng với bất kỳ chi phí nào nó có thể đi kèm?Tìm hiểu về chi phí đối tượng trong JVM

+0

thể trùng lặp của [Tiêu thụ bộ nhớ của một đối tượng trong Java là gì?] (Http://stackoverflow.com/questions/258120/what-is-the-memory-cons umption-of object))))))) –

+0

Bạn đã xem http://stackoverflow.com/questions/258120/what-is-the-memory-consumption-of-an-object-in-java ? –

+0

Tôi không hỏi chính xác điều tương tự. Tôi hỏi về chi phí, và tổng kích thước để tôi có thể lấy được một tỷ lệ phần trăm của chi phí trên tổng kích thước. – NlightNFotis

Trả lời

9

Bạn không thể nhận phí trực tiếp. Số tiền trên không phụ thuộc vào việc triển khai và có thể thay đổi dựa trên một số yếu tố (ví dụ: phiên bản JVM chính xác và cho dù bạn đang sử dụng JVM 32 hoặc 64bit).

Tuy nhiên, cũng hợp lý để giả định rằng trong các triển khai JVM hiện đại điển hình như HotSpot, chi phí cho mỗi đối tượng là từ 8 đến 16 byte. Mảng thường có một chi phí cao hơn 4 byte so với các đối tượng khác (để chứa độ dài mảng nguyên).

Xem thêm:

1

tôi thấy this article khá nhiều thông tin, mặc dù tôi đã có một số nghi ngờ bởi một số các giá trị được đề cập trong bảng

+0

Lưu ý rằng câu trả lời chỉ bao gồm liên kết thường không được khuyến khích; xem http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers. Có thể bạn có thể tóm tắt các phần liên quan của bài viết. – sleske

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