aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/benchmark/java
diff options
context:
space:
mode:
authorGravatar Yue Gan <yueg@google.com>2017-02-24 11:53:21 +0000
committerGravatar Irina Iancu <elenairina@google.com>2017-02-24 15:13:54 +0000
commit564be0d11b21519f28d3853527df0dfb074173fe (patch)
tree0a28c4392c5801719493bbc06069a5f5de845694 /src/tools/benchmark/java
parente98f50cb5739bfc5dd7fa3d730b47c38ce46b437 (diff)
Remove the first result in benchmark, since it's slower than others.
And a little refactor. -- PiperOrigin-RevId: 148446876 MOS_MIGRATED_REVID=148446876
Diffstat (limited to 'src/tools/benchmark/java')
-rw-r--r--src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java93
1 files changed, 61 insertions, 32 deletions
diff --git a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java
index dae2a96daa..4df2611ba3 100644
--- a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java
+++ b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java
@@ -72,38 +72,14 @@ class BuildGroupRunner {
// Target config
for (int targetIndex = 0; targetIndex < buildTargetConfigs.size(); ++targetIndex) {
- BuildTargetConfig targetConfig = buildTargetConfigs.get(targetIndex);
- System.out.println(targetConfig.getDescription());
-
- // Prepare generated code for build
- if (lastIsIncremental && !envConfig.getIncremental()) {
- buildCase.prepareGeneratedCode(
- workspace.resolve(GENERATED_CODE_FOR_COPY_DIR),
- workspace.resolve(GENERATED_CODE_DIR));
- }
- if (!lastIsIncremental && envConfig.getIncremental()) {
- JavaCodeGenerator.modifyExistingProject(
- workspace.resolve(GENERATED_CODE_DIR).toString(), true, true, true, true);
- }
- lastIsIncremental = envConfig.getIncremental();
-
- // Builder's clean method
- if (envConfig.getCleanBeforeBuild()) {
- builder.clean();
- }
-
- // Run build
- double elapsedTime =
- builder.buildAndGetElapsedTime(
- buildBinary, builder.getCommandFromConfig(targetConfig, envConfig));
- System.out.println(elapsedTime);
-
- // Store result
- buildGroupResultBuilder
- .getBuildTargetResultsBuilder(targetIndex)
- .getBuildEnvResultsBuilder(envIndex)
- .getResultsBuilder(versionIndex)
- .addResults(elapsedTime);
+ lastIsIncremental = runForConfigAndReturnLastIsIncremental(
+ buildGroupResultBuilder,
+ buildCase,
+ buildBinary,
+ envConfig,
+ buildTargetConfigs,
+ versionIndex, envIndex, targetIndex,
+ lastIsIncremental, (t == 0 && envIndex == 0 && targetIndex == 0));
}
}
}
@@ -112,6 +88,59 @@ class BuildGroupRunner {
return buildGroupResultBuilder.build();
}
+ private boolean runForConfigAndReturnLastIsIncremental(
+ BuildGroupResult.Builder buildGroupResultBuilder,
+ BuildCase buildCase,
+ Path buildBinary,
+ BuildEnvConfig envConfig,
+ ImmutableList<BuildTargetConfig> buildTargetConfigs,
+ int versionIndex, int envIndex, int targetIndex,
+ boolean lastIsIncremental, boolean removeFirstResult) throws IOException, CommandException{
+ BuildTargetConfig targetConfig = buildTargetConfigs.get(targetIndex);
+ System.out.println(targetConfig.getDescription());
+
+ // Prepare generated code for build
+ if (lastIsIncremental && !envConfig.getIncremental()) {
+ buildCase.prepareGeneratedCode(
+ workspace.resolve(GENERATED_CODE_FOR_COPY_DIR),
+ workspace.resolve(GENERATED_CODE_DIR));
+ }
+ if (!lastIsIncremental && envConfig.getIncremental()) {
+ JavaCodeGenerator.modifyExistingProject(
+ workspace.resolve(GENERATED_CODE_DIR).toString(), true, true, true, true);
+ }
+ lastIsIncremental = envConfig.getIncremental();
+
+ if (removeFirstResult) {
+ buildTargetAndGetElapsedTime(buildBinary, envConfig, targetConfig);
+ }
+ double elapsedTime = buildTargetAndGetElapsedTime(buildBinary, envConfig, targetConfig);
+
+ // Store result
+ buildGroupResultBuilder
+ .getBuildTargetResultsBuilder(targetIndex)
+ .getBuildEnvResultsBuilder(envIndex)
+ .getResultsBuilder(versionIndex)
+ .addResults(elapsedTime);
+ return lastIsIncremental;
+ }
+
+ private double buildTargetAndGetElapsedTime(
+ Path buildBinary, BuildEnvConfig envConfig, BuildTargetConfig targetConfig)
+ throws CommandException {
+ // Builder's clean method
+ if (envConfig.getCleanBeforeBuild()) {
+ builder.clean();
+ }
+
+ // Run build
+ double elapsedTime =
+ builder.buildAndGetElapsedTime(
+ buildBinary, builder.getCommandFromConfig(targetConfig, envConfig));
+ System.out.println(elapsedTime);
+ return elapsedTime;
+ }
+
private static BuildGroupResult.Builder getBuildGroupResultBuilder(
ImmutableList<BuildTargetConfig> buildTargetConfigs,
ImmutableList<BuildEnvConfig> buildEnvConfigs,