-
Sub-task
-
Resolution: Fixed
-
P4
-
24
-
None
Currently, raw bytecode access goes through multiple wrappers, include one from ClassFile API and another ByteBuffer for merged big endian value reads. We can merge the ByteBuffer into the ClassFile API one (RawBytecodeHelper) for safer access.
RawBytecodeHelper is also restructured so we avoid allocating it on the heap. Large rawNext method is now also inlined into the smaller next method.
Current benchmark results show this significantly speeds up jdk.classfile.Write and some degree of speedup for simple lambda startup. The impact on general application workloads is minuscule, but this doesn't seem to bring any regression.
RawBytecodeHelper is also restructured so we avoid allocating it on the heap. Large rawNext method is now also inlined into the smaller next method.
Current benchmark results show this significantly speeds up jdk.classfile.Write and some degree of speedup for simple lambda startup. The impact on general application workloads is minuscule, but this doesn't seem to bring any regression.
- links to
-
Commit(master) openjdk/jdk/a1eebbdf
-
Review(master) openjdk/jdk/20863