On Tue, 25 Mar 2025 15:27:05 GMT, David M. Lloyd <d...@openjdk.org> wrote:

>> Provide method overloads to the ClassFile interface of the 
>> java.lang.classfile API which allow parsing of classes found in memory 
>> segments, as well as allowing built class files to be output to them.
>
> David M. Lloyd has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Shorten method names
>  - Minor doc adjustment

A simple test to run a program with a single lambda in it did not cause the 
`MemorySegment` class to be loaded (as verified with `-verbose:class`), so 
there should be no regression in that regard.

Since the JDK code paths do not run through the new APIs, I would expect the 
only possible performance impact to come from the non-functional common code 
refactoring (extracting common methods) on the write side. So, I've run 
`ClassfileBenchmark` to ensure that no regression is happening there.

With patch:


Benchmark                                  Mode  Cnt      Score     Error  Units
ClassfileBenchmark.parse                  thrpt    5  52340.143 ± 492.543  ops/s
ClassfileBenchmark.transformWithAddedNOP  thrpt    5  11550.745 ± 146.057  ops/s
ClassfileBenchmark.transformWithNewCP     thrpt    5   7625.322 ±  50.366  ops/s
ClassfileBenchmark.transformWithSharedCP  thrpt    5  23755.083 ± 310.914  ops/s


Without patch:


Benchmark                                  Mode  Cnt      Score     Error  Units
ClassfileBenchmark.parse                  thrpt    5  52365.455 ± 649.145  ops/s
ClassfileBenchmark.transformWithAddedNOP  thrpt    5  11546.367 ± 105.941  ops/s
ClassfileBenchmark.transformWithNewCP     thrpt    5   7589.033 ±  66.221  ops/s
ClassfileBenchmark.transformWithSharedCP  thrpt    5  23729.577 ± 159.890  ops/s


It looks like they are all solidly within the margin of error. If there are any 
other tests you'd like me to run (or different parameters etc.) please let me 
know.

If this all looks ok, @asotona could you please review the CSR?

-------------

PR Comment: https://git.openjdk.org/jdk/pull/24139#issuecomment-2758219000

Reply via email to