2012-06-13 22 views
7

Java okuyordum ve java nesnelerinin, sanal makinenin yönetim nedenlerinden ötürü kullanıldığı, JVM içinde bazı yükleri olduğunu bir yerlerde okumayı hatırlıyorum. Bu yüzden benim sorum, birisi HotSpot JVM'de bir nesnenin toplam büyüklüğünü nasıl alabileceğimi ve herhangi bir ek yükle birlikte gelip gelmeyeceğini söyleyebilir mi?JVM'de nesne ek yükü hakkında bilgi edinin

+0

olası yinelenen belirtilen değerlerin bazıları tarafından, this article oldukça bilgilendirici bulundu [Java'da bir nesnenin hafıza tüketimi nedir?] (Http://stackoverflow.com/questions/258120/what-is-the-memory-cons bir nesne-in-java) –

+0

http://stackoverflow.com/questions/258120/what-is-the-memory-consumption-of-an-object-in-java bir göz attınız mı? ? –

+0

Ben de aynı şeyi istemiyorum. Ek yükü ve toplam büyüklüğü soruyorum, böylece toplam büyüklüğe karşı ek yükün bir yüzdesini elde edebilirim. – NlightNFotis

cevap

9

Doğrudan yükü alamıyorsunuz. Ek yük miktarı uygulamaya bağlıdır ve bir dizi faktöre (örneğin, kesin JVM sürümüne ve 32 veya 64bit JVM'de olup olmadığına) bağlı olarak değişebilir. Ancak, HotSpot gibi tipik modern JVM uygulamalarında, nesne başına düşen yükün, 8 ve 16 bayt arasında arasında olduğunu varsaymak makul derecede güvenlidir. Diziler tipik olarak diğer nesnelerden (tamsayı dizi uzunluğunu içerecek şekilde) 4 bayt daha büyük bir yüke sahiptir.

Ayrıca bkz: Bazı şüphelerim olmasına rağmen

1

Ben tablolardan

+0

Sadece bir bağlantıdan oluşan cevapların genellikle önerilmediğini unutmayın; bkz http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers. Belki de makalenin ilgili bölümlerini özetleyebilirsin. – sleske

İlgili konular