AnnotationParser optimization - JEP-149 (original) (raw)

Peter Levart peter.levart at gmail.com
Tue Nov 27 07:52:50 UTC 2012


Hi all,

This might not be much of an improvement, but it is very easy to do:

--- a/src/share/classes/sun/reflect/annotation/AnnotationParser.java Thu Nov 15 15:40:03 2012 -0800 +++ b/src/share/classes/sun/reflect/annotation/AnnotationParser.java Tue Nov 27 08:39:58 2012 +0100 @@ -227,7 +227,7 @@

      Map<String, Class<?>> memberTypes = type.memberTypes();
      Map<String, Object> memberValues =

It saves 1 OOP and 1 boolean for each Annotation instance + 2 OOPs for each Annotation member value.

It changes the serialization format of Annotation instances, but in a way that is backwards and forwards compatible.

Semantically it does not present any difference, since the only place that the Map is used is to Map.get(member) in the AnnotationInvocationHandler - it is never iterated.

Regards, Peter



More information about the core-libs-dev mailing list