diff options
author | Yue Gan <yueg@google.com> | 2017-02-24 11:53:21 +0000 |
---|---|---|
committer | Irina Iancu <elenairina@google.com> | 2017-02-24 15:13:54 +0000 |
commit | 564be0d11b21519f28d3853527df0dfb074173fe (patch) | |
tree | 0a28c4392c5801719493bbc06069a5f5de845694 /src/tools/benchmark/java | |
parent | e98f50cb5739bfc5dd7fa3d730b47c38ce46b437 (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.java | 93 |
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, |