On Thu, 23 Mar 2023 01:12:20 GMT, Chen Liang <li...@openjdk.org> wrote:

>> Jim Laskey has updated the pull request incrementally with two additional 
>> commits since the last revision:
>> 
>>  - Tidy javadoc
>>  - Rename StringTemplate classes
>
> src/java.base/share/classes/java/lang/runtime/StringTemplateImpl.java line 40:
> 
>> 38:  * <p>
>> 39:  * Values are stored by subclassing {@link Carriers.CarrierObject}. This 
>> allows specializations
>> 40:  * and sharing of value shapes without creating a new class for each 
>> shape.
> 
> Just curious, what specific benefits does subclassing offer over having 
> `CarrierObject` as a field? I don't see how a new class is ever created for 
> each shape in that scenario, as shapes are only used to construct the 2 MHs 
> in the factory.

About a 15-20% performance gain by not having two levels of indirection.

> src/java.base/share/classes/java/lang/runtime/StringTemplateImplFactory.java 
> line 88:
> 
>> 86:      *
>> 87:      * @param fragments  string template fragments
>> 88:      * @param type       method type
> 
> Suggestion:
> 
>      * @param type method type accepting values' types and returning a 
> StringTemplate

Changing

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

PR Review Comment: https://git.openjdk.org/jdk/pull/10889#discussion_r1147771982
PR Review Comment: https://git.openjdk.org/jdk/pull/10889#discussion_r1147775001

Reply via email to