[Javalist] objektum mérete a memóriában

Peter Verhas peter at verhas.com
2012. Jún. 15., P, 17:53:14 CEST


Egy objektum felépítése szerint van egy 

- 8 bájt fejléc
- a primitív adatok 1,2,4 vagy 8 bájtosak
- objektumok (referenciák, pointerek) 4 bájt
- padding 

A 64bites VM-ekben az objektum referenciák lehetnek 8 bájtosak is, de ha megméred, és azt látod, hogy csak 4, akkor ne mágiára gondolj, hanem kompresszált pointer kezelésre (ugye a 8bájt=64bit nagy része többnyire nulla, és erre vannak trükkök, hogy akkor azt már ne tároljuk. segmens és offset meg hasonló régi jól bevált trükkök még a 8X86 architektúrákból).

Array méret egy másik dolog. Részletesen itt:

http://www.javamex.com/tutorials/memory/object_memory_usage.shtml

Esetleg ki lehet próbálni a 

http://www.javamex.com/classmexer/

tool-t. 


--
Verhás Péter
peter at verhas.com
+36(30)9306805
skype: verhas




On 2012.06.15., at 17:45, Gádori Zsolt wrote:

> Sziasztok!
> 
> Egy objektum memóriában ténylegesen elfoglalt méretét szeretném
> meghatározni. Tehát nem a tartalmazott elemek számát! A C sizeof()
> függvényével azonos feladatot végrehajtó metódusra volna szükségem.
> Létezik valami módszer, hogy ezt egy tetszőleges objektumról meg tudjam
> mondani?
> 
> Köszi:
> GZsolt.
> -- 
> <gadori.zs at gmail.com>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist

--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20120615/33c1cb82/attachment.html>


További információk a(z) Javalist levelezőlistáról