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