The GitHub Actions job "Code Style" on grails-core.git/8.0.x has succeeded.
Run started by GitHub user jdaugherty (triggered by jdaugherty).

Head commit for run:
626c81dca39b713f8270bc101acaf92d11632b34 / James Daugherty 
<[email protected]>
Apply the dependency-analysis plugin only to its own tasks and keep it inside 
the 3G daemon

The build-health settings plugin applied itself to every project on every
invocation. Measured on 8.0.x, that alone cost a plain build about nine seconds
of configuration and 560 MB of daemon heap (help: 803 MB live without the
plugin, 1364 MB with it applied and nothing executed), and running buildHealth
pushed the 3G daemon into GC thrash at 16 workers.

Three changes, each with its measured basis recorded next to it:

- Each build declares the plugin with 'apply false' and the shared settings
  script applies it only when one of the plugin's tasks is requested by full
  name, checking the root build's request so ':build-logic-root:buildHealth'
  from the root still covers the included build. A plain build's task graph no
  longer contains any analysis task.
- The plugin's exploded-jar cache is bounded to 200 jars. Unbounded, the live
  set grew from 1.5 GB to 2.8 GB at four workers and the daemon survived only
  through 48 full collections; bounded it stops at 2.0 GB with six.
- A build service with maxParallelUsages 4 limits how many analyses run in the
  daemon at once. The plugin's workers are class-loader or no-isolation, so each
  concurrent analysis holds its exploded classpath in the daemon heap. At 16
  workers and 3G this brings a buildHealth run from 30 full collections to 8,
  with no thrash.

Report URL: https://github.com/apache/grails-core/actions/runs/36834481234

With regards,
GitHub Actions via GitBox

Reply via email to