On Dec 22, 2007 2:57 PM, Simon Chow <[EMAIL PROTECTED]> wrote: > On 21/12/2007, Xiao-Feng Li <[EMAIL PROTECTED]> wrote: > > > > On Dec 21, 2007 4:58 PM, Simon Chow <[EMAIL PROTECTED]> wrote: > > > In my view, java object structure is defined as managedObject in > > > object_layout.h > > > > Right, that's the VM side of the definition. In GC, it has another > > type for the same thing: Patial_Reveal_Object. They both only > > partially reveals the object header definition. > > > > The object fields are laid out in Class::assign_offsets_to_fields() > > and related methods. > > Basically you can find the info in > > vm/vmcore/src/class_support/prepare.cpp. > > > I found the offset of fields is aligned to its own size when calculating the > object layout in Class::assign_offsets_to_fields(). > Why is that?
It's to save some bytes. See Global_Env:compact_fields. It can be specified in command line option. It's turned off in 32-bit machine and on in wider bus platforms. I think it's a tradeoff between memory requirement and access efficiency, because data not aligning at architectural width could result in extra operation for access. Well, smaller object requires less memory and possibly leads to better cache effects. Thanks, xiaofeng > Array has its own counterpart definitions. > > > > Thanks, > > xiaofeng > > > > > > > > On 21/12/2007, 史成荣 <[EMAIL PROTECTED]> wrote: > > > > > > > > hi, all > > > > I want to know the structure of the java objcet. Where can I find > > the > > > > exact class describing java object in the source code of Harmony? > > > > > > > > Thanks, > > > > Chengrong > > > > > > > > > > > > > > > > -- > > > From : [EMAIL PROTECTED] School of Fudan University > > > > > > > > > > > -- > > http://xiao-feng.blogspot.com > > > > > > -- > > From : [EMAIL PROTECTED] School of Fudan University > -- http://xiao-feng.blogspot.com
