Clone Tools
  • last updated a few minutes ago
Constraints: committers
Constraints: files
Constraints: dates
Set up Groovy compilation performance tests. (#9551)

Previously we had only performance test scenarios for Java compilation. This PR parameterize performance template generation so that we can generate projects with Groovy source code. Also, it sets up `GroovyABIChangePerformanceTest`/`GroovyNonABIChangePerformanceTests`.

  1. … 12 more files in changeset.
Do no additional escape on JVM opts

Use repository mirrors in performance tests

  1. … 10 more files in changeset.
Simplify Profiler interface

  1. … 11 more files in changeset.
Unpack distribution only once per performance test

Make performance tests fair again

Performance tests depend on the distribution

directory being of exactly the same length,

otherwise shorter directories will make the

caches slightly smaller and thus make Gradle

run slightly faster. This fairness was lost during the

refactoring that introduced the ForkingGradleSession.

Remove usage of --no-search-upwards and deprecate

  1. … 256 more files in changeset.
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.

  1. … 27 more files in changeset.
Add a performance test specific to parallel downloads

This commit introduces a performance test measuring the impact of parallel downloads:

- parallel download of artifacts

- parallel download of metadata

The test project is a Spring Boot app (copied from their samples), and we're using a remote repository test

fixture to simulate network latency.

  1. … 7 more files in changeset.
Fix no-daemon performance tests

Pass the jvm args to the client VM, so Gradle isn't forced to start

a 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 turn

on their laptop.

  1. … 1 more file in changeset.
Use correct Gradle distribution for performance tests

Redirect output of performance tests to disk

The performance tests now no longer use our integration test fixtures.

Instead they use a simple ProcessBuilder to be closer to what a user

would do. More specifically, we no longer capture output in the test VM,

as that can introduce its own flakiness into the measurement. It also

reduces the memory needed to run the performance tests. Last but not least

spooling the output to disk makes later analysis easier.

    • -0
    • +106
  1. … 9 more files in changeset.