You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Optimize array access macros to reduce using is-contiguous check
Optimize array access macros to use is-contiguous check only in presence
of arraylets
Along with new offheap feature support, Macro Array Element Access
J9JAVAARRAY_EA/J9JAVAARRAY_EA_VM need 1 or 2 more runtime flags check to
handle new cases/new structures. extra runtime condition checks in the
Macro, which is called in hotspot, could cause certain performance
regression in some platforms. especially for standard GC cases, off-heap
would not contribute any benefit at all.
Optimize Macro J9JAVAARRAY_EA/J9JAVAARRAY_EA_VM to avoid runtime check
IsContiguousArray for stamdard GC and balanced GC with off-heap eanable
cases, because there is no discontigouos array for these cases(except o
size array).
1, replace isVirtualLargeObjectHeapEnabled and
isIndexableDataAddrPresent flag with indexableObjectLayout in JavaVM and
J9VmThread.
2, indexableObjectLayout have only 4 states
J9IndexableObjectLayout_NoDataAddr_NoArraylet 0x0 /* StandardGC case */
J9IndexableObjectLayout_NoDataAddr_Arraylet 0x1 /* Metronome GC case */
J9IndexableObjectLayout_DataAddr_NoArraylet 0x2 /* Balanced GC Offheap
enabled case */
J9IndexableObjectLayout_DataAddr_Arraylet 0x3 /* Balanced GC Offheap
disabled case */
3, in Macro J9JAVAARRAY_EA/J9JAVAARRAY_EA_VM, check StandardGC case and
Balanced GC Offheap enabled case first in order to reduce runtime
condition check for standard GC(Balanced GC Offheap enabled case too),
then avoid performance regression(reduce flag numbers in J9VmThread
also could help reduce the regression for some platforms).
4, flag isVirtualLargeObjectHeapEnabled and isIndexableDataAddrPresent
has been removed from J9VmThread
flag isVirtualLargeObjectHeapEnabled has been removed from JavaVM (we
still keep flag isIndexableDataAddrPresent in JavaVM for minimizing the
changes).
Signed-off-by: lhu <linhu@ca.ibm.com>
0 commit comments