2009-03-10 51 views
5

Kích thước của đối tượng được phân bổ heap trong .net, bao gồm phí quản lý? Tôi giả định các đối tượng được phân bổ dọc theo ranh giới 4 byte, hoặc là một cách tiếp cận khác nhau được sử dụng?Kích thước đối tượng .NET

+0

Xem: http://stackoverflow.com/questions/324053/find-out-the-size-of-a-net-object –

+0

Jon B: Câu hỏi đó là về kích thước của bất kỳ đối tượng nào trong .NET trong khi điều này câu hỏi là về kích thước của các cá thể của lớp .NET Object. Một câu hỏi hoàn toàn khác. –

Trả lời

5

4 ranh giới byte trên x86. Có thể 8 byte ranh giới trên x64.

Có phí 8 byte trên x86, cho tham chiếu loại và khối đồng bộ hóa. Tôi sẽ không ngạc nhiên khi thấy rằng đó là 12 hoặc 16 byte trên x64.

Đối với một số lý do, trên x86 một thể hiện của chỉ System.Object dường như mất 12 byte, làm cho 12 byte kích thước tối thiểu tuyệt đối có thể - nhưng một lớp học với một intcũng mất 12 byte. Tôi không biết tại sao lại như vậy.

+0

Bạn không nên trả lời câu hỏi ở mức độ cao và thấp. Tôi đang retaging với một thẻ mới: stump-the-skeet. Trong trường hợp này, câu hỏi này là gốc-the-skeet: thất bại. –

+0

Thẻ đó không tồn tại lâu. ;-) –

+0

. Nghĩ rằng tôi sẽ thử. :) –

1

Phụ thuộc vào máy, trên máy 32 bit, thường là 4 byte. Tuy nhiên, trên hộp 64 bit, nó là 8 byte, v.v.

+0

Tôi nghĩ bạn đang nói về kích thước của một * tham chiếu * chứ không phải là đối tượng trên đầu nó. –

+0

argh, yea. cảm ơn –

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