aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/benchmark/java
diff options
context:
space:
mode:
authorGravatar Yun Peng <pcloudy@google.com>2017-02-01 16:24:26 +0000
committerGravatar Yun Peng <pcloudy@google.com>2017-02-01 16:36:37 +0000
commit59450eb3770f539352c959dfae7ba04fd32e47b3 (patch)
tree1b7c432bc8a62d6af9214c38cdc924fdb467bf2d /src/tools/benchmark/java
parent28d9bd3d17e9532e97ce72dc9001d94b7e64368c (diff)
*** Reason for rollback *** BazelBuilderTest failed to build on ci.bazel.io See https://github.com/bazelbuild/bazel/issues/2468 *** Original change description *** Benchmark part 3: main stuff -- PiperOrigin-RevId: 146246018 MOS_MIGRATED_REVID=146246018
Diffstat (limited to 'src/tools/benchmark/java')
-rw-r--r--src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD17
-rw-r--r--src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java139
-rw-r--r--src/tools/benchmark/java/com/google/devtools/build/benchmark/Main.java93
3 files changed, 0 insertions, 249 deletions
diff --git a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD
index b2c4956837..8d433d9cd9 100644
--- a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD
+++ b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD
@@ -7,22 +7,6 @@ java_proto_library(
src = "build_data.proto",
)
-java_binary(
- name = "benchmark",
- srcs = glob(["*.java"]),
- main_class = "com.google.devtools.build.benchmark.Main",
- deps = [
- ":build_data_proto",
- "//src/main/java/com/google/devtools/build/lib:shell",
- "//src/main/java/com/google/devtools/build/lib:vfs",
- "//src/main/java/com/google/devtools/common/options",
- "//src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator:codegenerator_lib",
- "//third_party:guava",
- "//third_party/protobuf",
- "//third_party/protobuf:protobuf-util",
- ],
-)
-
java_library(
name = "benchmark_lib",
testonly = 1,
@@ -35,7 +19,6 @@ java_library(
"//src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator:codegenerator_lib",
"//third_party:guava",
"//third_party/protobuf",
- "//third_party/protobuf:protobuf-util",
],
)
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
deleted file mode 100644
index 48bd2d47d2..0000000000
--- a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.benchmark;
-
-import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.benchmark.codegenerator.JavaCodeGenerator;
-import com.google.devtools.build.lib.shell.CommandException;
-import java.io.IOException;
-import java.nio.file.Path;
-
-/** Class for running a build group with all build targets and getting performance results. */
-class BuildGroupRunner {
-
- private static final String GENERATED_CODE_FOR_COPY_DIR = "GeneratedCodeForCopy";
- private static final String GENERATED_CODE_DIR = "GeneratedCode";
- private static final String BUILDER_DIR = "BuilderBazel";
- private static final int REPEAT_TIMES = 3;
-
- private final Path workspace;
- private Builder builder = null;
-
- BuildGroupRunner(Path workspace) {
- this.workspace = workspace;
- }
-
- BuildGroupResult run(String from, String to) throws IOException, CommandException {
- BuildCase buildCase = new BazelBuildCase();
- ImmutableList<BuildTargetConfig> buildTargetConfigs = buildCase.getBuildTargetConfigs();
- ImmutableList<BuildEnvConfig> buildEnvConfigs = buildCase.getBuildEnvConfigs();
-
- // Prepare builder (Bazel)
- prepareBuilder();
- System.out.println("Done preparing builder.");
-
- ImmutableList<String> codeVersions = buildCase.getCodeVersions(builder, from, to);
-
- BuildGroupResult.Builder buildGroupResultBuilder =
- getBuildGroupResultBuilder(buildTargetConfigs, buildEnvConfigs, codeVersions);
-
- boolean lastIsIncremental = true;
- for (int versionIndex = 0; versionIndex < codeVersions.size(); ++versionIndex) {
- String version = codeVersions.get(versionIndex);
- System.out.format("Benchmark for version %s started.\n", version);
-
- // Get builder binary (build Bazel binary)
- Path buildBinary = buildBinary = builder.getBuildBinary(version);
-
- for (int t = 0; t < REPEAT_TIMES; ++t) {
- for (int envIndex = 0; envIndex < buildEnvConfigs.size(); ++envIndex) {
- BuildEnvConfig envConfig = buildEnvConfigs.get(envIndex);
- System.out.println("Started config: " + envConfig.getDescription());
-
- 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);
- }
- }
- }
- }
-
- return buildGroupResultBuilder.build();
- }
-
- private static BuildGroupResult.Builder getBuildGroupResultBuilder(
- ImmutableList<BuildTargetConfig> buildTargetConfigs,
- ImmutableList<BuildEnvConfig> buildEnvConfigs,
- ImmutableList<String> codeVersions) {
- // Initialize a BuildGroupResult object to preserve array length
- BuildGroupResult.Builder buildGroupResultBuilder = BuildGroupResult.newBuilder();
- for (BuildTargetConfig targetConfig : buildTargetConfigs) {
- BuildTargetResult.Builder targetBuilder =
- BuildTargetResult.newBuilder().setBuildTargetConfig(targetConfig);
- prepareBuildEnvConfigs(buildEnvConfigs, codeVersions, targetBuilder);
- buildGroupResultBuilder.addBuildTargetResults(targetBuilder.build());
- }
- return buildGroupResultBuilder;
- }
-
- private static void prepareBuildEnvConfigs(
- ImmutableList<BuildEnvConfig> buildEnvConfigs,
- ImmutableList<String> codeVersions,
- BuildTargetResult.Builder targetBuilder) {
- for (BuildEnvConfig envConfig : buildEnvConfigs) {
- BuildEnvResult.Builder envBuilder = BuildEnvResult.newBuilder().setConfig(envConfig);
- for (String version : codeVersions) {
- envBuilder.addResults(SingleBuildResult.newBuilder().setCodeVersion(version).build());
- }
- targetBuilder.addBuildEnvResults(envBuilder.build());
- }
- }
-
- private void prepareBuilder() throws IOException, CommandException {
- builder =
- new BazelBuilder(workspace.resolve(GENERATED_CODE_DIR), workspace.resolve(BUILDER_DIR));
- builder.prepare();
- }
-}
diff --git a/src/tools/benchmark/java/com/google/devtools/build/benchmark/Main.java b/src/tools/benchmark/java/com/google/devtools/build/benchmark/Main.java
deleted file mode 100644
index 368d85a34b..0000000000
--- a/src/tools/benchmark/java/com/google/devtools/build/benchmark/Main.java
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.benchmark;
-
-import static java.nio.charset.StandardCharsets.UTF_8;
-
-import com.google.devtools.common.options.Options;
-import com.google.devtools.common.options.OptionsParsingException;
-import com.google.protobuf.InvalidProtocolBufferException;
-import com.google.protobuf.util.JsonFormat;
-import java.io.File;
-import java.io.IOException;
-import java.io.Writer;
-import java.nio.file.Files;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/** Main class for running benchmark. */
-public class Main {
-
- private static final Logger logger = Logger.getLogger(Main.class.getName());
-
- public static void main(String[] args) {
-
- BenchmarkOptions opt = null;
- try {
- opt = parseArgs(args);
- } catch (Exception e) {
- if (!e.getMessage().isEmpty()) {
- logger.log(Level.SEVERE, e.getMessage());
- }
- System.exit(1);
- }
-
- // Prepare paths
- File workspace = new File(opt.workspace);
- if (!workspace.exists() && !workspace.mkdirs()) {
- logger.log(Level.SEVERE, "Failed to create workspace directory: " + opt.workspace);
- System.exit(1);
- }
- File outputFile = new File(opt.output);
- if (outputFile.exists()) {
- logger.log(Level.SEVERE, "Output file already exists: " + opt.output);
- System.exit(1);
- }
-
- BuildGroupRunner runner = new BuildGroupRunner(workspace.toPath());
- BuildGroupResult result = null;
- try {
- result = runner.run(opt.from, opt.to);
- } catch (Exception e) {
- logger.log(Level.SEVERE, e.getMessage());
- System.exit(1);
- }
-
- // Store data
- try {
- Writer writer = Files.newBufferedWriter(outputFile.toPath(), UTF_8);
- JsonFormat.printer().appendTo(result, writer);
- writer.flush();
- } catch (InvalidProtocolBufferException e) {
- logger.log(Level.SEVERE, "Invalid protobuf: " + e.getMessage());
- System.exit(1);
- } catch (IOException e) {
- logger.log(Level.SEVERE, "Failed to write to output file: " + e.getMessage());
- System.exit(1);
- }
- }
-
- public static BenchmarkOptions parseArgs(String[] args) throws OptionsParsingException {
- BenchmarkOptions opt = Options.parse(BenchmarkOptions.class, args).getOptions();
-
- // Check options
- if (opt.workspace.isEmpty() || opt.from.isEmpty() || opt.to.isEmpty() || opt.output.isEmpty()) {
- System.err.println(Options.getUsage(BenchmarkOptions.class));
- throw new IllegalArgumentException("Argument value should not be empty.");
- }
-
- return opt;
- }
-}