About the performance between master and GROOVY_2_5_X

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

About the performance between master and GROOVY_2_5_X

Daniel Sun

Hi all,

      I noticed that the performance of master is better than GROOVY_2_5_X.

      About 17% time saved when running tests in the TeamCity CI instance:
master costs 18m:55s(TeamCity CI, Parrot disabled)
http://ci.groovy-lang.org/viewLog.html?buildId=38801&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2
GROOVY_2_5_X costs 22m:51s(TeamCity CI, without Parrot)
http://ci.groovy-lang.org/viewLog.html?buildId=38787&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2

      And about 37% time saved when running tests in the Travis CI instance:
master costs 20 min 25 sec(Travis CI, Parrot enabled)
https://travis-ci.org/apache/groovy/builds/223991099
GROOVY_2_5_X costs 32 min 52 sec(Travis CI, without Parrot)
https://travis-ci.org/apache/groovy/builds/223816724

      Can we infer that the new parser Parrot does not impact the performance or even improve the performance somehow?

Cheers,
Daniel.Sun

Reply | Threaded
Open this post in threaded view
|

Re: About the performance between master and GROOVY_2_5_X

jwagenleitner

On Thu, Apr 20, 2017 at 9:11 AM, 孙 岚 <[hidden email]> wrote:

Hi all,

      I noticed that the performance of master is better than GROOVY_2_5_X.

      About 17% time saved when running tests in the TeamCity CI instance:
master costs 18m:55s(TeamCity CI, Parrot disabled)
http://ci.groovy-lang.org/viewLog.html?buildId=38801&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2
GROOVY_2_5_X costs 22m:51s(TeamCity CI, without Parrot)
http://ci.groovy-lang.org/viewLog.html?buildId=38787&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2

      And about 37% time saved when running tests in the Travis CI instance:
master costs 20 min 25 sec(Travis CI, Parrot enabled)
https://travis-ci.org/apache/groovy/builds/223991099
GROOVY_2_5_X costs 32 min 52 sec(Travis CI, without Parrot)
https://travis-ci.org/apache/groovy/builds/223816724

      Can we infer that the new parser Parrot does not impact the performance or even improve the performance somehow?


One possible other difference is that master is using Gradle v3.5 and 2_5_X is 3.4, though that probably would not account for such a big difference.

Just as a side note, does Parrot need to be included as a subproject in settings.gradle?  I see the Travis build sets the -PuseAntlr4=true, but is that really enough to enable Parrot for all compilation and run it's tests?
Reply | Threaded
Open this post in threaded view
|

回复:About the performance between master and GROOVY_2_5_X

Daniel Sun
In reply to this post by Daniel Sun
Hi John,

Parrot will be enabled for all projects:
https://github.com/apache/groovy/blob/master/subprojects/groovy-parser-antlr4/build.gradle#L51

Cheers,
Daniel.Sun


-------- 原始邮件 --------
主题:About the performance between master and GROOVY_2_5_X
发件人:孙 岚
收件人:[hidden email]
抄送:


Hi all,

      I noticed that the performance of master is better than GROOVY_2_5_X.

      About 17% time saved when running tests in the TeamCity CI instance:
master costs 18m:55s(TeamCity CI, Parrot disabled)
http://ci.groovy-lang.org/viewLog.html?buildId=38801&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2
GROOVY_2_5_X costs 22m:51s(TeamCity CI, without Parrot)
http://ci.groovy-lang.org/viewLog.html?buildId=38787&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2

      And about 37% time saved when running tests in the Travis CI instance:
master costs 20 min 25 sec(Travis CI, Parrot enabled)
https://travis-ci.org/apache/groovy/builds/223991099
GROOVY_2_5_X costs 32 min 52 sec(Travis CI, without Parrot)
https://travis-ci.org/apache/groovy/builds/223816724

      Can we infer that the new parser Parrot does not impact the performance or even improve the performance somehow?

Cheers,
Daniel.Sun

Reply | Threaded
Open this post in threaded view
|

Re: About the performance between master and GROOVY_2_5_X

jwagenleitner
Hi Daniel,

Thanks, I had missed that.  How do the tests under "subprojects/groovy-parser-antlr4/src/test" get run or are they not enabled on purpose?

John

On Thu, Apr 20, 2017 at 4:07 PM, 孙 岚 <[hidden email]> wrote:
Hi John,

Parrot will be enabled for all projects:
https://github.com/apache/groovy/blob/master/subprojects/groovy-parser-antlr4/build.gradle#L51

Cheers,
Daniel.Sun


-------- 原始邮件 --------
主题:About the performance between master and GROOVY_2_5_X
发件人:孙 岚
收件人:[hidden email]
抄送:



Hi all,

      I noticed that the performance of master is better than GROOVY_2_5_X.

      About 17% time saved when running tests in the TeamCity CI instance:
master costs 18m:55s(TeamCity CI, Parrot disabled)
http://ci.groovy-lang.org/viewLog.html?buildId=38801&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2
GROOVY_2_5_X costs 22m:51s(TeamCity CI, without Parrot)
http://ci.groovy-lang.org/viewLog.html?buildId=38787&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2

      And about 37% time saved when running tests in the Travis CI instance:
master costs 20 min 25 sec(Travis CI, Parrot enabled)
https://travis-ci.org/apache/groovy/builds/223991099
GROOVY_2_5_X costs 32 min 52 sec(Travis CI, without Parrot)
https://travis-ci.org/apache/groovy/builds/223816724

      Can we infer that the new parser Parrot does not impact the performance or even improve the performance somehow?

Cheers,
Daniel.Sun


Reply | Threaded
Open this post in threaded view
|

答复: About the performance between master and GROOVY_2_5_X

Daniel Sun
In reply to this post by Daniel Sun

Hi John,


       You can enable Parrot and run its related tests by passing `-PuseAntlr4=true` to gradle. Since the new parser is not mature enough in the past, we had to disable it by default to avoid some failed tests.

        Currently Parrot can parse all groovy source codes of Apache Groovy and other famous groovy projects(e.g. Grails, Gradle, Spock, Geb) properly, so I am going to set aside some time to enable Parrot by default in the master branch.


Cheers,

Daniel.Sun


发件人: 孙 岚 <[hidden email]>
发送时间: 2017年4月21日 0:11
收件人: [hidden email]
主题: About the performance between master and GROOVY_2_5_X
 

Hi all,

      I noticed that the performance of master is better than GROOVY_2_5_X.

      About 17% time saved when running tests in the TeamCity CI instance:
master costs 18m:55s(TeamCity CI, Parrot disabled)
http://ci.groovy-lang.org/viewLog.html?buildId=38801&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2
GROOVY_2_5_X costs 22m:51s(TeamCity CI, without Parrot)
http://ci.groovy-lang.org/viewLog.html?buildId=38787&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2

      And about 37% time saved when running tests in the Travis CI instance:
master costs 20 min 25 sec(Travis CI, Parrot enabled)
https://travis-ci.org/apache/groovy/builds/223991099
GROOVY_2_5_X costs 32 min 52 sec(Travis CI, without Parrot)
https://travis-ci.org/apache/groovy/builds/223816724

      Can we infer that the new parser Parrot does not impact the performance or even improve the performance somehow?

Cheers,
Daniel.Sun

Reply | Threaded
Open this post in threaded view
|

Re: 答复: About the performance between master and GROOVY_2_5_X

paulk_asert
I was also going to look at that too but have lots more on my todo list first. I was going to do that after creating the GROOVY_2_6_X branch. I'll try to do the GROOVY_2_6_X branch today which then leaves master ready for jdk8 only and parrot as the default - happy for you to look at this Daniel.

I was initially going to allow turning back on the antlr2 parser with a switch (-PuseAntlr2=true or similar, because I thought that would be the smaller change) with a view to removing the old parser altogether as a second step possibly in a later version. But this topic was discussed before and I think the general consensus was that if it greatly simplified our codebase just to remove the old parser, then we should consider going down that path. In the Apache spirit of do-ocracy, I'll let you see what looks like the best way forward as you start doing these steps.

Cheers, Paul.


On Fri, Apr 21, 2017 at 10:57 AM, 孙 岚 <[hidden email]> wrote:

Hi John,


       You can enable Parrot and run its related tests by passing `-PuseAntlr4=true` to gradle. Since the new parser is not mature enough in the past, we had to disable it by default to avoid some failed tests.

        Currently Parrot can parse all groovy source codes of Apache Groovy and other famous groovy projects(e.g. Grails, Gradle, Spock, Geb) properly, so I am going to set aside some time to enable Parrot by default in the master branch.


Cheers,

Daniel.Sun


发件人: 孙 岚 <[hidden email]>
发送时间: 2017年4月21日 0:11
收件人: [hidden email]
主题: About the performance between master and GROOVY_2_5_X
 

Hi all,


      I noticed that the performance of master is better than GROOVY_2_5_X.

      About 17% time saved when running tests in the TeamCity CI instance:
master costs 18m:55s(TeamCity CI, Parrot disabled)
http://ci.groovy-lang.org/viewLog.html?buildId=38801&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2
GROOVY_2_5_X costs 22m:51s(TeamCity CI, without Parrot)
http://ci.groovy-lang.org/viewLog.html?buildId=38787&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2

      And about 37% time saved when running tests in the Travis CI instance:
master costs 20 min 25 sec(Travis CI, Parrot enabled)
https://travis-ci.org/apache/groovy/builds/223991099
GROOVY_2_5_X costs 32 min 52 sec(Travis CI, without Parrot)
https://travis-ci.org/apache/groovy/builds/223816724

      Can we infer that the new parser Parrot does not impact the performance or even improve the performance somehow?

Cheers,
Daniel.Sun


Reply | Threaded
Open this post in threaded view
|

答复: About the performance between master and GROOVY_2_5_X

Daniel Sun
In reply to this post by Daniel Sun

Hi Paul,


       I'll set Parrot as the default parser when you finish creating GROOVY_2_6_X. In addition, as you suggested, I'll provide some option to turn back to the old parser.


P.S. I failed to receive mail from the mailing list... so I have to reply my own email...


Cheers,

Daniel.Sun


发件人: 孙 岚 <[hidden email]>
发送时间: 2017年4月21日 0:11
收件人: [hidden email]
主题: About the performance between master and GROOVY_2_5_X
 

Hi all,

      I noticed that the performance of master is better than GROOVY_2_5_X.

      About 17% time saved when running tests in the TeamCity CI instance:
master costs 18m:55s(TeamCity CI, Parrot disabled)
http://ci.groovy-lang.org/viewLog.html?buildId=38801&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2
GROOVY_2_5_X costs 22m:51s(TeamCity CI, without Parrot)
http://ci.groovy-lang.org/viewLog.html?buildId=38787&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2

      And about 37% time saved when running tests in the Travis CI instance:
master costs 20 min 25 sec(Travis CI, Parrot enabled)
https://travis-ci.org/apache/groovy/builds/223991099
GROOVY_2_5_X costs 32 min 52 sec(Travis CI, without Parrot)
https://travis-ci.org/apache/groovy/builds/223816724

      Can we infer that the new parser Parrot does not impact the performance or even improve the performance somehow?

Cheers,
Daniel.Sun

Reply | Threaded
Open this post in threaded view
|

Re: 答复: About the performance between master and GROOVY_2_5_X

paulk_asert
OK, the GROOVY_2_6_X branch is created. It possibly needs a little tidy up and I haven't attempted merging the backport yet. But master is all set for jdk8+ and changes to make parrot the default.

Cheers, Paul.


On Fri, Apr 21, 2017 at 2:57 PM, 孙 岚 <[hidden email]> wrote:

Hi Paul,


       I'll set Parrot as the default parser when you finish creating GROOVY_2_6_X. In addition, as you suggested, I'll provide some option to turn back to the old parser.


P.S. I failed to receive mail from the mailing list... so I have to reply my own email...


Cheers,

Daniel.Sun


发件人: 孙 岚 <[hidden email]>
发送时间: 2017年4月21日 0:11
收件人: [hidden email]
主题: About the performance between master and GROOVY_2_5_X
 

Hi all,


      I noticed that the performance of master is better than GROOVY_2_5_X.

      About 17% time saved when running tests in the TeamCity CI instance:
master costs 18m:55s(TeamCity CI, Parrot disabled)
http://ci.groovy-lang.org/viewLog.html?buildId=38801&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2
GROOVY_2_5_X costs 22m:51s(TeamCity CI, without Parrot)
http://ci.groovy-lang.org/viewLog.html?buildId=38787&tab=buildResultsDiv&buildTypeId=Groovy_Jdk8Build_2

      And about 37% time saved when running tests in the Travis CI instance:
master costs 20 min 25 sec(Travis CI, Parrot enabled)
https://travis-ci.org/apache/groovy/builds/223991099
GROOVY_2_5_X costs 32 min 52 sec(Travis CI, without Parrot)
https://travis-ci.org/apache/groovy/builds/223816724

      Can we infer that the new parser Parrot does not impact the performance or even improve the performance somehow?

Cheers,
Daniel.Sun