Object Allocation
Jon Masamitsu
jon.masamitsu at oracle.com
Thu Nov 18 18:16:08 UTC 2010
On 11/18/10 09:19, Brain Damage wrote:
> Hello,
>
> I am trying to do some modifications in the allocation process of
> 'external' objects i.e. objects allocated using 'new' by any java program.
> As written in the whitepaper, JVM employs the fast allocation or 'Bump
> a pointer' technique for allocating external objects.
>
> I am not able to find the entry point of the 'new' keyword i.e. what
> functions are called when it sees the new keyword in a java program.
> My initial suspect was JRT_ENTRY(...) macro in the runtime.cpp file,
> where they have matched 'new_instance_java' with 'new_instance_C'.
> I tried to follow the functions called by this macro i.e.
> instanceKlass::cast(klass)->allocate_instance(THREAD);
> Although it did take me to some object allocation but I am not sure if
> this is the process used to allocate java objects.
> It seems this process is used by the JVM to allocate it's internal
> runtime objects to build the environment.
I think you have actually found the code that you are seeking. Follow
the calls
from allocate_instance() down to CollectedHeap::common_mem_allocate_noinit()
and in that method look at CollectedHeap::allocate_from_tlab() for the
"bump"
allocation.
>
> I don't know a whole lot about jvm, this is just what I could make out
> by looking at the code.
>
> Please help me find the definition new.
>
> Thanks,
>
> Yogesh
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20101118/55b1fc67/attachment.htm>
More information about the hotspot-gc-dev
mailing list