On Sun, 22 Sep 2024 13:37:38 GMT, Chen Liang <li...@openjdk.org> wrote:
>> Optimize checkAssignableTo to avoid clone when stackSize is 0, and use clone >> instead of Array.copyOf to avoid compression and then expansion > > src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java > line 1102: > >> 1100: target.localsSize = localsSize; >> 1101: if (stackSize > 0) { >> 1102: target.stack = Arrays.copyOf(stack, stackSize); > > Do you think we should use `.clone()` to avoid `getClass` checks and to avoid > extra array growing in case the new stack/local immediately grows due to > instructions after target? > > Also I think you can do `localsSize > 0` check for locals assignment too. stack.length may be larger than stackSize. In this case, the length of the array copied by clone will be longer than Arrays.copyOf. However, I have no evidence that Arrays.copyOf is faster than clone. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21121#discussion_r1770563199