@Override public ImmutableSet<Experiment> selectExperiments() { List<Experiment> experiments = Lists.newArrayList(); for (Instrumentation instrumentation : instrumentations) { for (VirtualMachine vm : vms) { for (List<String> userParamsChoice : cartesian(userParameters)) { ImmutableMap<String, String> theseUserParams = zip(userParameters.keySet(), userParamsChoice); experiments.add(new Experiment(instrumentation, theseUserParams, vm)); } } } return ImmutableSet.copyOf(experiments); }
public static ExperimentModule forExperiment(Experiment experiment) { Method benchmarkMethod = experiment.instrumentation().benchmarkMethod(); return new ExperimentModule(benchmarkMethod.getDeclaringClass(), benchmarkMethod, experiment.userParameters()); }
@Override public String apply(Experiment experiment) { return experiment.instrumentation().benchmarkMethod().getName(); } }).toSet());
BenchmarkClass benchmarkClass) { Instrumentation instrumentation = experiment.instrumentation(); Instrument instrument = instrumentation.instrument(); WorkerSpec request = new WorkerSpec( args.addAll(getJvmArgs(experiment.vm(), benchmarkClass)); args.add(CommandLineSerializer.render(request)); logger.finest(String.format("Full JVM (%s) args: %s", experiment.vm().name, args)); return processBuilder;
@Provides MeasurementCollectingVisitor provideMeasurementCollectingVisitor(Experiment experiment) { return experiment.instrumentation().getMeasurementCollectingVisitor(); }
BenchmarkClass benchmarkClass) { Instrumentation instrumentation = experiment.instrumentation(); Instrument instrument = instrumentation.instrument(); ImmutableList.Builder<String> parameterClassNames = ImmutableList.builder(); args.addAll(getJvmArgs(experiment.vm(), benchmarkClass)); args.add(gson.toJson(request)); logger.finest(String.format("Full JVM (%s) args: %s", experiment.vm().name, args)); return processBuilder;
public static ExperimentModule forExperiment(Experiment experiment) { Method benchmarkMethod = experiment.instrumentation().benchmarkMethod(); return new ExperimentModule(benchmarkMethod.getDeclaringClass(), benchmarkMethod, experiment.userParameters()); }
@Provides MeasurementCollectingVisitor provideMeasurementCollectingVisitor(Experiment experiment) { return experiment.instrumentation().getMeasurementCollectingVisitor(); }
@Override public ImmutableSet<Experiment> selectExperiments() { List<Experiment> experiments = Lists.newArrayList(); for (Instrumentation instrumentation : instrumentations) { for (VirtualMachine vm : vms) { for (List<String> userParamsChoice : cartesian(userParameters)) { ImmutableMap<String, String> theseUserParams = zip(userParameters.keySet(), userParamsChoice); experiments.add(new Experiment(instrumentation, theseUserParams, vm)); } } } return ImmutableSet.copyOf(experiments); }
@TrialScoped @Provides BenchmarkSpec provideBenchmarkSpec(Experiment experiment) { return new BenchmarkSpec.Builder() .className(experiment.instrumentation().benchmarkMethod().getDeclaringClass().getName()) .methodName(experiment.instrumentation().benchmarkMethod().getName()) .addAllParameters(experiment.userParameters()) .build(); }
@Provides @TrialScoped TrialSchedulingPolicy provideTrialSchedulingPolicy(Experiment experiment) { return experiment.instrumentation().instrument().schedulingPolicy(); }
@TrialScoped @Provides BenchmarkSpec provideBenchmarkSpec(Experiment experiment) { return new BenchmarkSpec.Builder() .className(experiment.instrumentation().benchmarkMethod().getDeclaringClass().getName()) .methodName(experiment.instrumentation().benchmarkMethod().getName()) .addAllParameters(experiment.userParameters()) .build(); }
benchmarkClass.setUpBenchmark(benchmark); try { experiment.instrumentation().dryRun(benchmark); builder.add(experiment); } finally {
benchmarkClass.setUpBenchmark(benchmark); try { experiment.instrumentation().dryRun(benchmark); builder.add(experiment); } finally {
@Override public Trial newTrial(VmDataCollectingVisitor dataCollectingVisitor, MeasurementCollectingVisitor measurementCollectingVisitor) { checkState(measurementCollectingVisitor.isDoneCollecting()); return new Trial.Builder(trialId) .run(run) .instrumentSpec(experiment.instrumentation().instrument().getSpec()) .scenario(new Scenario.Builder() .host(host) .vmSpec(dataCollectingVisitor.vmSpec()) .benchmarkSpec(benchmarkSpec)) .addAllMeasurements(measurementCollectingVisitor.getMeasurements()) .build(); } };
@Override public TrialResult newTrialResult( VmDataCollectingVisitor dataCollectingVisitor, MeasurementCollectingVisitor measurementCollectingVisitor) { checkState(measurementCollectingVisitor.isDoneCollecting()); // TODO(lukes): should the trial messages be part of the Trial datastructure? It seems like // the web UI could make use of them. return new TrialResult( new Trial.Builder(trialId) .run(run) .instrumentSpec(experiment.instrumentation().instrument().getSpec()) .scenario(new Scenario.Builder() .host(host) .vmSpec(dataCollectingVisitor.vmSpec()) .benchmarkSpec(benchmarkSpec)) .addAllMeasurements(measurementCollectingVisitor.getMeasurements()) .build(), experiment, measurementCollectingVisitor.getMessages()); } };