Make performance tests fair againPerformance tests depend on the distributiondirectory being of exactly the same length,otherwise shorter directories will make thecaches slightly smaller and thus make Gradlerun slightly faster. This fairness was lost during therefactoring that introduced the ForkingGradleSession.
Explicit clean up before performance test measurements (#2640)Previously we were using a workaround where odd runs were removed from measurements, and executed a `clean` build instead of the measured build.Performance tests can now specify `cleanTasks`, similar to how they specify `tasksToRun`. These `cleanTasks` will be executed before each run (warm-up and measurement runs alike).A new column is added to performance test tables to track this new information. It is a nullable column to allow for test results added by older versions of Gradle.I've updated the task output caching tests and the Maven vs. Gradle comparisons to declare `cleanTasks` instead of the old hack with the odd-even runs.
Add a performance test specific to parallel downloadsThis commit introduces a performance test measuring the impact of parallel downloads:- parallel download of artifacts- parallel download of metadataThe test project is a Spring Boot app (copied from their samples), and we're using a remote repository testfixture to simulate network latency.
Fix no-daemon performance testsPass the jvm args to the client VM, so Gradle isn't forced to starta single-use daemon.Adds a test for a cold daemon, but without recompling scripts, i.e.what a developer usually experiences in the morning when they turnon their laptop.
Redirect output of performance tests to diskThe performance tests now no longer use our integration test fixtures.Instead they use a simple ProcessBuilder to be closer to what a userwould do. More specifically, we no longer capture output in the test VM,as that can introduce its own flakiness into the measurement. It alsoreduces the memory needed to run the performance tests. Last but not leastspooling the output to disk makes later analysis easier.