RFR: 8306842: Classfile API performance improvements [v4]
Adam Sotona
asotona at openjdk.org
Mon May 15 10:03:50 UTC 2023
On Fri, 12 May 2023 13:19:44 GMT, Chen Liang <liach at openjdk.org> wrote:
>> Adam Sotona has updated the pull request incrementally with one additional commit since the last revision:
>>
>> fixed jmh benchmark parameters
>
> test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java line 57:
>
>> 55: public void setup() throws IOException {
>> 56: shared = new LinkedList<>();
>> 57: unshared = new LinkedList<>();
>
> LinkedList should be replaced by ArrayList, as:
> 1. LinkedList's node wrapper around each object is too heavy, ArrayList has smaller wrapper
> 2. LinkedList iteration needs to follow links while ArrayList access can be machine optimized
> 3. ArrayList addition is amortized O(1), not really worse than LinkedList additions.
Construction size is irrelevant here as each node holds the whole expanded `ClassModel` instances.
`LinkedList` iterator `next` speed is O(1) and possible `AraryList` optimisations of the test data iterator have no effect on this benchmark.
Construction speed of `ArrayList` is not O(1) when the `grow` method is called, however it is also irrelevant as this is unmeasured setup part of the benchmark.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13671#discussion_r1193614917
More information about the core-libs-dev
mailing list