Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Add safepoint times to MeasuredOperation

  1. … 3 more files in changeset.
Remove start and end from MeasuredOperation

The fields are unused and we can't fill them from Gradle profiler.

  1. … 4 more files in changeset.
Remove start and end from MeasuredOperation

The fields are unused and we can't fill them from Gradle profiler.

  1. … 4 more files in changeset.
Add gc count to measurement logs

  1. … 2 more files in changeset.
Include GC time in final measurements

  1. … 4 more files in changeset.
Include GC time in final measurements

  1. … 4 more files in changeset.
Include GC time in final measurements

  1. … 3 more files in changeset.
Include GC time in final measurements

  1. … 3 more files in changeset.
Include GC time in final measurements

  1. … 3 more files in changeset.
Include GC time in final measurements

  1. … 3 more files in changeset.
Remove memory measurement APIs

  1. … 10 more files in changeset.
Simplify performance measurements

The many measurements that we injected into the build under test were

skewing our measurements to the point of making them unreliable or

unrealistic. We now only measure end to end build time. Here's a breakdown

with the rationale for removing each other measurement:

- configuration time: can be done by having a `gradle help` scenario instead

- execution time: the user does not care whether a long build is stuck in execution or configuration

- setup/teardown: was ill-defined anyway, basically total - configuration - execution

- JIT compile time: this is nothing we can influence and thus pointless to measure

- Memory usage: Was only measured at one point in the build, which doesn't tell us anything about

any problems at any other point in the build

- GC CPU time: If this increases we'd see it in total execution time

Generally, looking at the graphs has never pointed us directly at the problem, we always need to

profile anyway. So instead of skewing our measurements with lots of profling code, we should

instead use a dedicated profiling job to measure if we actually see a regression.

Memory usage can be tested indirectly by giving each scenario a reasonable amount of memory.

If memory usage rises above that reasonable limit, we'd see execution time rise, telling us about

the regression. Generally, we do not optimize for smallest memory usage, but for fastest execution

with reasonable memory overhead.

This change also removes all JVM tweaking and wait periods which we introduced in an attempt to

make tests more predictable and stable. These tweaks have not really helped us achieve more stable

tests and have often done the opposite. They also add lots of complexity and make our tests more

unrealistic. A real users will not add all these JVM options to Gradle.

  1. … 59 more files in changeset.
Remove DurationMeasurement.fail and improve perf test error handling

- use the interface just for starting and stopping the measurement

- improve error handling in performance tests

  1. … 7 more files in changeset.
Collect total compile time and total gc time

  1. … 7 more files in changeset.
Fix records being incorrectly discarded before measurements were copied

  1. … 2 more files in changeset.
Ignore errors when measurements checks are set to `none`

This commit lets us ignore build failures when the performance checks mode is set to `none`. This means

that if a template is wrong, or a particular version of Gradle is not compatible with a template, and

that an iteration of a performance test fails, measurement is ignored *and* the performance test will

not fail.

This is going to be useful for historical builds, where we want to override the baselines for all tests.

  1. … 6 more files in changeset.
Extract performance test fixtures to separate project

    • -0
    • +38
    ./MeasuredOperation.groovy
  1. … 248 more files in changeset.