On Mon, 6 May 2024 18:24:25 GMT, Adam Sotona <asot...@openjdk.org> wrote:

>> Hi,
>> During performance optimization work on Class-File API as JDK lambda 
>> generator we found some static initialization killers.
>> One of them is `java.lang.classfile.Attributes` with tens of static fields 
>> initialized with individual attribute mappers, and common set of all 
>> mappers, and static map from attribute names to the mappers.
>> 
>> I propose to turn all the static fields into lazy-initialized static methods 
>> and remove `PREDEFINED_ATTRIBUTES` and `standardAttribute(Utf8Entry name)` 
>> static mapping method from the `Attributes` API class.
>>  
>> Please let me know your comments or objections and please review the 
>> [PR](https://github.com/openjdk/jdk/pull/19006) and 
>> [CSR](https://bugs.openjdk.org/browse/JDK-8331414), so we can make it into 
>> 23.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   fixed tests

src/java.base/share/classes/java/lang/classfile/Attributes.java line 153:

> 151: 
> 152:     /**
> 153:      * {@return Attribute mapper for the {@code AnnotationDefault} 
> attribute}

Just wondering, can we change `{@code AnnotationDefault}` to `{@value 
#NAME_ANNOTATION_DEFAULT}`, etc? This way, the names are still rendered as code 
in Javadoc HTML, but they are generated with links to the constants, and 
programmers will see these constants and prefer them over hardcoded values.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/19006#discussion_r1597655934

Reply via email to