[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-23 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17307017#comment-17307017
 ] 

ASF subversion and git services commented on LUCENE-9861:
-

Commit 078d0079d1f697dde305277b92f0a6792d6843d2 in lucene's branch 
refs/heads/jira/LUCENE-9856-static-analysis from Dawid Weiss
[ https://gitbox.apache.org/repos/asf?p=lucene.git;h=078d007 ]

LUCENE-9861: pull tuned vm options into a separate aspect. (#33)



> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Fix For: main (9.0)
>
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-23 Thread Robert Muir (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306997#comment-17306997
 ] 

Robert Muir commented on LUCENE-9861:
-

Thank you [~dweiss], this one really helps my computer.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Fix For: main (9.0)
>
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-23 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306925#comment-17306925
 ] 

ASF subversion and git services commented on LUCENE-9861:
-

Commit 078d0079d1f697dde305277b92f0a6792d6843d2 in lucene's branch 
refs/heads/main from Dawid Weiss
[ https://gitbox.apache.org/repos/asf?p=lucene.git;h=078d007 ]

LUCENE-9861: pull tuned vm options into a separate aspect. (#33)



> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-23 Thread Uwe Schindler (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306875#comment-17306875
 ] 

Uwe Schindler commented on LUCENE-9861:
---

+1 for committing

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Dawid Weiss (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306803#comment-17306803
 ] 

Dawid Weiss commented on LUCENE-9861:
-

The improvement is clearly seen on individual tasks so I'm +1 for committing 
this in. I agree my work computer isn't representative - it's a beast (I love 
it). 

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Robert Muir (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306627#comment-17306627
 ] 

Robert Muir commented on LUCENE-9861:
-

Another way to look at it, if you see that, you've set gradle parallelism too 
low and you have unused cores. Better to increase it so you are doing 64 of 
these things at a time than to only do 16 at a time and burn 48 cores on c2 :)

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Robert Muir (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306625#comment-17306625
 ] 

Robert Muir commented on LUCENE-9861:
-

If you have 87 cores, you can afford to spend a bunch of unused ones compiling 
c2 code to make the build go a few seconds faster.

If you only have limited cores like me, when you run the build, computer is 
fully maxed out: you have 100% cpu usage. so cycles wasted on c2 add whole 
minutes to the build.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Uwe Schindler (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306620#comment-17306620
 ] 

Uwe Schindler commented on LUCENE-9861:
---

Looks slower after? 🤔

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Dawid Weiss (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306604#comment-17306604
 ] 

Dawid Weiss commented on LUCENE-9861:
-

My results. Before:
{code}
Aggregate task times (possibly running in parallel!):
  77.53 sec.  renderSiteJavadoc
  76.72 sec.  renderJavadoc
  75.67 sec.  compileJava
  60.92 sec.  compileTestJava
  34.16 sec.  ecjLintMain
  30.85 sec.  ecjLintTest
  29.53 sec.  checkBrokenLinks
  29.18 sec.  clean
  24.42 sec.  spotlessJava
...
BUILD SUCCESSFUL in 1m 47s
{code}

After:
{code}
 136.29 sec.  renderJavadoc
 115.73 sec.  renderSiteJavadoc
  93.04 sec.  compileJava
  76.30 sec.  compileTestJava
  52.09 sec.  ecjLintMain
  48.96 sec.  ecjLintTest
  41.54 sec.  spotlessJava
  30.09 sec.  clean
  29.71 sec.  checkBrokenLinks
  12.31 sec.  rat
  10.65 sec.  validateSourcePatterns
   7.58 sec.  checkUnusedConstraints
...
BUILD SUCCESSFUL in 2m 12s
{code}

Wall-time difference isn't that big but this is an amd ryzen machine with lots 
of cores.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Dawid Weiss (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306602#comment-17306602
 ] 

Dawid Weiss commented on LUCENE-9861:
-

The problem with running javadocs in-process is that I'm slightly worried about 
heap... we already have it quite high for gradle. Also, more importantly, 
javadoc is forked for the target JVM selected for compilation/ tests - this  
would be inconsistent if we used gradle's VM.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Dawid Weiss (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306599#comment-17306599
 ] 

Dawid Weiss commented on LUCENE-9861:
-

I've refactored this into a somewhat more shared logic (see the PR).

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Robert Muir (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306558#comment-17306558
 ] 

Robert Muir commented on LUCENE-9861:
-

{quote}
But for stuff that works perfectly fine in the Gradle JVM, disabling forking 
also helps because it can run for very long time do class loading cost goes 
away, optimizer can optimize and Gradle daemon can keep it alive.
{quote}

In my tests it is better to run gradle's JVM with C1-only, too... even though 
it is longer lived. Maybe because of all the groovy and stuff, I'm not sure. 
Note: I don't use the daemon, but we are still talking about a process running 
for *minutes* and still C2 only slows things down.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Robert Muir (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306549#comment-17306549
 ] 

Robert Muir commented on LUCENE-9861:
-

Also the "-times" can be removed from the patch. I was using it for debugging 
the ecj speed, but it would be noise to most people.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Uwe Schindler (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306540#comment-17306540
 ] 

Uwe Schindler commented on LUCENE-9861:
---

Yes, especially also renderJavadoc should use the better JVM options. 
RenderJavadoc can't be in-process, as javadoc calls System.exit().

But for stuff that works perfectly fine in the Gradle JVM, disabling forking 
also helps because it can run for very long time do class loading cost goes 
away, optimizer can optimize and Gradle daemon can keep it alive.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Robert Muir (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306536#comment-17306536
 ] 

Robert Muir commented on LUCENE-9861:
-

Not forking is fine too. But forking with C2 enabled in order to run for only 
5-20seconds is where things get bad (that's what we are doing today)

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Uwe Schindler (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306534#comment-17306534
 ] 

Uwe Schindler commented on LUCENE-9861:
---

I would really like to look also into not forking a subprocess? Javac runs 
perfectly fine inside the Gradle JVM, why do we need to fork for each ECJ 
involution? In Ant, ECJ used to run inside the Compiler Adapter of Ant, sich 
runs in process.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Dawid Weiss (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306528#comment-17306528
 ] 

Dawid Weiss commented on LUCENE-9861:
-

I did take a look at the patch... oh, man. There is a lovely way to pull it up 
- let me give it a try in an hour or so.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Dawid Weiss (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306526#comment-17306526
 ] 

Dawid Weiss commented on LUCENE-9861:
-

Whaaat?! :) I'll take a look tomorrow, Robert but it looks terrific. We can 
definitely tune JVM defaults for these processes; I didn't realize the defaults 
are soo poor here!

You should really be looking at all dependencies of the "check -x test" task 
(checks without tests). Precommit is just a subset of those checks I typically 
run.

As for javadoc - I had this crazy idea that it'd be great to combine multiple 
doclets into a single pass over the sources. Javadoc is repeating the job of 
javac (and multiple javadoc passes are doing it multiple time). It'd be great 
to reuse the compile tree somehow. Don't know how to do it but it sounds super 
hacky... I mean, exciting.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Robert Muir (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306462#comment-17306462
 ] 

Robert Muir commented on LUCENE-9861:
-

simple bench of current hack patch

before:
{noformat}
$ ./gradlew clean precommit
BUILD SUCCESSFUL in 6m 20s
581 actionable tasks: 514 executed, 67 up-to-date
{noformat}

after:
{noformat}
$ ./gradlew clean precommit
BUILD SUCCESSFUL in 3m 55s
581 actionable tasks: 514 executed, 67 up-to-date
{noformat}

For reference, here are the task times from the output:
{noformat}
Aggregate task times (possibly running in parallel!):
 194.10 sec.  compileTestJava
 185.43 sec.  renderJavadoc
 184.49 sec.  compileJava
  85.09 sec.  ecjLintMain
  81.87 sec.  spotlessJava
  78.61 sec.  ecjLintTest
  29.43 sec.  validateSourcePatterns
   7.77 sec.  rat
   7.41 sec.  jar
   3.07 sec.  compileToolsJava
   2.66 sec.  ecjLintTools
   1.52 sec.  verifyLocks
   1.28 sec.  processResources
   0.86 sec.  copyTestResources
   0.75 sec.  gitStatus
   0.75 sec.  validateJarChecksums
   0.44 sec.  collectJarInfos
   0.15 sec.  spotlessInternalRegisterDependencies
   0.12 sec.  clean
   0.09 sec.  validateJarLicenses
   0.07 sec.  processTestResources
   0.05 sec.  syncConf
   0.04 sec.  spotlessJavaCheck
   0.02 sec.  checkDanglingLicenseFiles
   0.01 sec.  checkWorkingCopyClean
   0.01 sec.  versionsPropsAreSorted
{noformat}

So I still need to investigate {{javac}}, {{spotlessJava}}, and 
{{validateSourcePatterns}}


> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
> Attachments: LUCENE-9861_hack.patch
>
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9861) speed up precommit

2021-03-22 Thread Robert Muir (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17306439#comment-17306439
 ] 

Robert Muir commented on LUCENE-9861:
-

For renderJavadoc this is also 2x speedup:
Before:
{noformat}
Aggregate task times (possibly running in parallel!):
 357.87 sec.  renderJavadoc
 259.61 sec.  compileJava
   1.05 sec.  processResources
   0.28 sec.  clean
{noformat}

After:
{noformat}
Aggregate task times (possibly running in parallel!):
 182.77 sec.  renderJavadoc
 166.17 sec.  compileJava
   0.94 sec.  processResources
   0.16 sec.  clean
{noformat}

I haven't yet attacked {{javac}}, the reason you see tasks get faster there is 
just because C2 compiler threads from {{javadoc}} aren't eating up all my cpu 
and slowing them down.

> speed up precommit
> --
>
> Key: LUCENE-9861
> URL: https://issues.apache.org/jira/browse/LUCENE-9861
> Project: Lucene - Core
>  Issue Type: Task
>Reporter: Robert Muir
>Priority: Major
>
> A lot of the java tools for precommit aren't being called in efficient ways 
> (compilation, linting, etc).
> For example ecjlint, it runs very slow:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  271.73 sec.  ecjLintMain
>  270.18 sec.  ecjLintTest
>  227.17 sec.  compileJava
>   12.07 sec.  compileTestJava
>1.21 sec.  processResources
>0.18 sec.  clean
> {noformat}
> Simplying adding a couple reasonable jvm arguments to the ecj linter 
> ({{jvmArgs = [ '-XX:+UseParallelGC', '-XX:TieredStopAtLevel=1' ]}}) speeds it 
> up significantly.
> Speedup for ecjLint is 3x for me:
> {noformat}
> Aggregate task times (possibly running in parallel!):
>  163.38 sec.  compileJava
>   84.57 sec.  ecjLintMain
>   83.12 sec.  ecjLintTest
>6.11 sec.  compileTestJava
>0.95 sec.  processResources
>0.15 sec.  clean
> {noformat}
> I imagine same may be true for a lot of these tasks. We're currently tossing 
> default jvm args at these short-lived subprocesses, which is very suboptimal.



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

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org