You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Jochen Theodorou (JIRA)" <ji...@apache.org> on 2017/01/26 20:15:24 UTC
[jira] [Assigned] (GROOVY-8023) Compile time increases
exponentially when compiling Class implementing a Trait
[ https://issues.apache.org/jira/browse/GROOVY-8023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jochen Theodorou reassigned GROOVY-8023:
----------------------------------------
Assignee: Jochen Theodorou
> Compile time increases exponentially when compiling Class implementing a Trait
> ------------------------------------------------------------------------------
>
> Key: GROOVY-8023
> URL: https://issues.apache.org/jira/browse/GROOVY-8023
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 2.4.4, 2.4.7
> Reporter: Martin Klähn
> Assignee: Jochen Theodorou
>
> Concidering the following classes
> {code:title=ATrait.groovy|borderStyle=solid}
> trait ATrait {
> }
> {code}
> and
> {code:title=AClass.groovy|borderStyle=solid}
> class AClass implements ATrait {
> def String cleanName(String name) {
> return name.
> replaceAll(/alpha01/, '/').
> replaceAll(/alpha02/, '/').
> replaceAll(/alpha03/, '/').
> replaceAll(/alpha04/, '/').
> replaceAll(/alpha05/, '/').
> replaceAll(/alpha06/, '/').
> replaceAll(/alpha07/, '/').
> replaceAll(/alpha08/, '/').
> replaceAll(/alpha09/, '/').
> replaceAll(/alpha10/, '/').
> replaceAll(/alpha11/, '/').
> replaceAll(/alpha12/, '/').
> replaceAll(/alpha13/, '/').
> replaceAll(/alpha14/, '/').
> replaceAll(/alpha15/, '/').
> replaceAll(/alpha16/, '/').
> replaceAll(/alpha17/, '/').
> replaceAll(/alpha18/, '/').
> replaceAll(/alpha19/, '/').
> replaceAll(/alpha20/, '/').
> replaceAll(/alpha21/, '/').
> replaceAll(/alpha22/, '/').
> replaceAll(/alpha23/, '/').
> // replaceAll(/alpha24/, '/').
> // replaceAll(/alpha25/, '/').
> replaceAll(/\//, ".").
> replaceAll(/\.\.*/, ".").
> replaceAll(/__+/, "_")
> }
> }
> {code}
> compiles in about 6 seconds. If I remove the import of the Trait 'ATrait' in 'AClass' the compile proces only takes about 1 second.
> If you consider the classes as the are shown above then the compile time nearly duplicates for every method call I add to the chained method call.
> With the replaceAll with alpha24 being compiled the compilation process takes approximately 11 seconds and with alpha 25 being compiled in conjunction with alpha24 the compilation takes approximately 20 seconds.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)