[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