On Mon, 13 Sep 2021 11:06:15 GMT, Сергей Цыпанов <github.com+10835776+stsypa...@openjdk.org> wrote:
> Currently the method is implemented like > > public List<Class<?>> parameterList() { > return Collections.unmodifiableList(Arrays.asList(ptypes.clone())); > } > > This seems to be excessive, as three objects are allocated here. Instead we > can use `List.of(ptypes)` which doesn't allocate anything for empty array and > for one of length 1 and 2 it allocates lightweight objects with 2 fields, > still copying longer arrays. This is likely to be fruitful as most of methods > have 0-2 parameters. > > Also there is a couple of cases when `MethodType.parameterLis()` is called to > get its size, which is excessive either as we can use > `MethodType.parameterCount()` instead. This pull request has now been integrated. Changeset: 4c673df3 Author: Sergey Tsypanov <sergei.tsypa...@yandex.ru> Committer: Jorn Vernee <jver...@openjdk.org> URL: https://git.openjdk.java.net/jdk/commit/4c673df31e46644b21fefa51e0ea01f7d9b94856 Stats: 7 lines in 2 files changed: 0 ins; 0 del; 7 mod 8273656: Improve java.lang.invoke.MethodType.parameterList() and its usage Reviewed-by: jvernee, vlivanov, mchung ------------- PR: https://git.openjdk.java.net/jdk/pull/5489