Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Add a tool for comparing reports from multiple experiments #24

Open
dmitry-timofeev opened this issue Jun 20, 2019 · 1 comment

Comments

@dmitry-timofeev
Copy link
Contributor

Overview

This a feature request for a tool that allows to compare the results of multiple experiments with the baseline profile. That would allow to validate the results of the experiments:

  • Check that all mojos that are expected to be executed are actually executed (i.e., no experiment accidentally excludes a mojo, distorting the total time; or that deliberately excluded mojo is definitely not executed)
  • See anomalies and detect invalid experiments. For example, if the first execution starts with empty target/s, but subsequent — with already compiled classes and do not include clean — the compile time in those experiments may be dramatically smaller, which distorts the results. Such issue applies to any executions that use caches.

Manual comparison is tedious and error-prone in case of multiple experiments, especially if the mojos are sorted by execution time.

Reports

Such tool may produce such reports:

Detailed per-mojo comparison for each module

As a web-page:

Module Foo:

Mojo Profile 1 (baseline) Profile 2
maven-clean-plugin:3.0.1:clean 100 ms 120 ms ( 20%*) 97 ms (-3%)
maven-compiler-plugin:3.8.1:compile 7.5 s 6.8 s (-10%) 6.3 s (-15%)
maven-surefire-plugin:2.22.1:test 15.5 s 8.3 s (-40%) 0 (:warning: no execution — check your experiment)
Total 35 s 27 s 25 s

A summary of all experiments

As console output/web-page:

Profile Total time Difference
Profile 1 (baseline) 35 s
Profile 2 27 s -10%
Profile N 25 s -12%

* — percents here and elsewhere are mostly random 🙃

@jcgay
Copy link
Owner

jcgay commented Sep 2, 2019

I like the idea 👍
It seems that it can be develop as an independent tool ? Or how do you imagine to launch it with the current extension ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants