jprinet opened a new pull request, #14895:
URL: https://github.com/apache/grails-core/pull/14895

   ### Issue
   The build performances are currently not optimal and could be improved.
   Focusing on build cacheability, running twice the build without any change 
and cache enabled on a fresh Gradle user home surfaces some performance issues, 
which can result in up to 26mn of CPU time wasted on a build.
   
   ### Experiment
   I used an automated experiment to run the build twice ([GitHub 
workflow](https://github.com/gradle/develocity-oss-projects/actions/runs/16201427211/workflow))
   
   The summary of the experiment can be checked 
[there](https://github.com/gradle/develocity-oss-projects/actions/runs/16201427211)
   
   We can in particular notice [the second 
build](https://ge.solutions-team.gradle.com/s/6hnubh6rve352/timeline?cacheability=cacheable&outcome=success)
 from experiment 3 suffering from 171 unexpected cache misses, totalling almost 
26mn of serial time.
   
   <img width="1772" height="1186" alt="Screenshot 2025-07-11 at 3 46 45 PM" 
src="https://github.com/user-attachments/assets/c79c3c59-1c2b-40b5-aa0b-96fefea33503";
 />
   
   ### Fixes
   Several fixes were applied and are isolated on specific commits for review 
convenience
   
   #### Apply `RelativePath` normalization on task inputs to improve 
cacheability 
   - `aggregateDataMappingGroovydoc`
   - `aggregateGroovydoc`
   - `asciidoctor`
   - `compileGsonViews`
   - `compileProfile`
   
   #### Ignore `grails.build.info` with runtime classpath normalization
   - `compileIntegrationTestGroovy`
   - `compileTestGroovy`
   - `integrationTest`
   - `test`
   
   #### Fix overlapping outputs on assetCompile task
   - `assetCompile`
   
   #### Improve Javadoc cacheability by using date instead of instant on 
options.bottom task input
   - `javadoc`
   
   #### Fix AsciiDoc task cache relocatability by using relative paths instead 
of absolute paths
   - `asciidoc`
   
   #### Fix PublishGuideTask task cache relocatability by using relative paths 
instead of absolute paths
   - 'publishGuide'
   
   #### Fix GroovyPageForkCompileTask cacheability by defining a task output
   - `compileGroovyPages`


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to