[ 
https://issues.apache.org/jira/browse/GROOVY-9716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Suminda Dharmasena updated GROOVY-9716:
---------------------------------------
    Description: 
Groovy Templates seams to be comparatively less performant than other 
templating solutions. E.g.: 
[https://github.com/jreijn/spring-comparing-template-engines]

 

Can this performance gap be closed making it the most performant?

 

Also is it possible to add partials evaluation support when only parts of the 
template need reevaluation when part of the data changes.

 

Possible areas to improve:
 * Faster reflection can be used like used in: 
[https://github.com/EsotericSoftware/reflectasm]
 * Be lock-free as much as possible. Maybe 
[disruptor-proxy|https://github.com/LMAX-Exchange/disruptor-proxy] pattern can 
be used but with [Conversant Disruptor|https://github.com/conversant/disruptor] 
limited to the methods which need synchronising
 * Use faster primitive collections
 * Use faster logger like Log4J2 with [Conversant 
Disruptor|https://github.com/conversant/disruptor]

NB: This benchmark may be dated but some outperform stringbuilder: 
https://github.com/greenlaw110/template-engine-benchmarks 

  was:
Groovy Templates seams to be comparatively less performant than other 
templating solutions. E.g.: 
[https://github.com/jreijn/spring-comparing-template-engines]

 

Can this performance gap be closed making it the most performant?

 

Also is it possible to add partials evaluation support when only parts of the 
template need reevaluation when part of the data changes.

 

Possible areas to improve:
 * Faster reflection can be used like used in: 
[https://github.com/EsotericSoftware/reflectasm]
 * Be lock-free as much as possible. Maybe 
[disruptor-proxy|https://github.com/LMAX-Exchange/disruptor-proxy] pattern can 
be used but with [Conversant Disruptor|https://github.com/conversant/disruptor] 
limited to the methods which need synchronising
 * Use faster primitive collections
 * Use faster logger like Log4J2 with [Conversant 
Disruptor|https://github.com/conversant/disruptor]


> Close Performance Gap in Groovy Templates
> -----------------------------------------
>
>                 Key: GROOVY-9716
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9716
>             Project: Groovy
>          Issue Type: Improvement
>          Components: Templating
>            Reporter: Suminda Dharmasena
>            Priority: Major
>
> Groovy Templates seams to be comparatively less performant than other 
> templating solutions. E.g.: 
> [https://github.com/jreijn/spring-comparing-template-engines]
>  
> Can this performance gap be closed making it the most performant?
>  
> Also is it possible to add partials evaluation support when only parts of the 
> template need reevaluation when part of the data changes.
>  
> Possible areas to improve:
>  * Faster reflection can be used like used in: 
> [https://github.com/EsotericSoftware/reflectasm]
>  * Be lock-free as much as possible. Maybe 
> [disruptor-proxy|https://github.com/LMAX-Exchange/disruptor-proxy] pattern 
> can be used but with [Conversant 
> Disruptor|https://github.com/conversant/disruptor] limited to the methods 
> which need synchronising
>  * Use faster primitive collections
>  * Use faster logger like Log4J2 with [Conversant 
> Disruptor|https://github.com/conversant/disruptor]
> NB: This benchmark may be dated but some outperform stringbuilder: 
> https://github.com/greenlaw110/template-engine-benchmarks 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to