On Tue, 21 May 2024 13:49:18 GMT, jengebr <d...@openjdk.org> wrote: > Improve `java/lang/reflect/Method.java` by eliminating needless cloning of > Class[0] instances. This cloning is intended to prevent callers from > changing array contents, but many Methods have zero exceptions or zero > parameters, and returning the original `Class[0]` is sufficient. > > Results from the included JMH benchmark: > Before: > > Benchmark Mode Cnt Score Error Units > ConstructorBenchmark.getExceptionTypes avgt 5 6.526 ± 0.183 ns/op > ConstructorBenchmark.getExceptionTypesEmpty avgt 5 5.803 ± 0.073 ns/op > ConstructorBenchmark.getParameterTypes avgt 5 6.521 ± 0.188 ns/op > ConstructorBenchmark.getParameterTypesEmpty avgt 5 5.747 ± 0.087 ns/op > MethodBenchmark.getExceptionTypes avgt 5 6.525 ± 0.163 ns/op > MethodBenchmark.getExceptionTypesEmpty avgt 5 5.783 ± 0.130 ns/op > MethodBenchmark.getParameterTypes avgt 5 6.518 ± 0.195 ns/op > MethodBenchmark.getParameterTypesEmpty avgt 5 5.742 ± 0.028 ns/op > > > After: > > Benchmark Mode Cnt Score Error Units > ConstructorBenchmark.getExceptionTypes avgt 5 6.590 ± 0.124 ns/op > ConstructorBenchmark.getExceptionTypesEmpty avgt 5 1.351 ± 0.061 ns/op > ConstructorBenchmark.getParameterTypes avgt 5 6.651 ± 0.132 ns/op > ConstructorBenchmark.getParameterTypesEmpty avgt 5 1.353 ± 0.150 ns/op > MethodBenchmark.getExceptionTypes avgt 5 6.701 ± 0.151 ns/op > MethodBenchmark.getExceptionTypesEmpty avgt 5 1.422 ± 0.025 ns/op > MethodBenchmark.getParameterTypes avgt 5 6.629 ± 0.142 ns/op > MethodBenchmark.getParameterTypesEmpty avgt 5 1.273 ± 0.169 ns/op
This pull request has now been integrated. Changeset: 27af19d9 Author: John Engebretson <jeng...@amazon.com> Committer: Aleksey Shipilev <sh...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/27af19d921a5cf15f5146471b58961815690b4f2 Stats: 177 lines in 4 files changed: 170 ins; 1 del; 6 mod 8332586: Avoid cloning empty arrays in java.lang.reflect.{Method,Constructor} Reviewed-by: shade, rriggs, liach ------------- PR: https://git.openjdk.org/jdk/pull/19327