public static void main(String[] args) throws RunnerException { Options opt = new OptionsBuilder().forks(0) .include(ChannelThroughputBackoffNone.class.getSimpleName()).param("type", "Mpsc") .build(); new Runner(opt).run(); } }
private static void runJmh(AtlasDbPerfCli cli, List<DockerizedDatabaseUri> uris) throws Exception { ChainedOptionsBuilder optBuilder = new OptionsBuilder() .forks(1) .measurementIterations(1) .timeUnit(TimeUnit.MICROSECONDS) .shouldFailOnError(true) .param(BenchmarkParam.URI.getKey(), uris.stream() .map(DockerizedDatabaseUri::toString) .collect(Collectors.toList()) .toArray(new String[uris.size()])); if (cli.tests == null) { getAllBenchmarks().forEach(b -> optBuilder.include(".*" + b)); } else { cli.tests.forEach(b -> optBuilder.include(".*" + b)); } if (!cli.testRun) { runCli(cli, optBuilder); } else { runCliInTestMode(optBuilder); } }
private Collection<RunResult> runBenchmarks() { // File jmhOut = File.createTempFile("jmh", "out"); // These are broken out simply to provide more friendly feedback to users. Map<String, Class<?>> namedTests = new LinkedHashMap<>(); namedTests.put("nanotime", SysBenchMethodNanoTime.class); namedTests.put("parknanos", SysBenchMethodParkNanos.class); namedTests.put("sleep", SysBenchMethodThreadSleep.class); Collection<RunResult> results = new ArrayList<>(); namedTests.forEach((n, c) -> { try { String logfile = Files.createTempFile("jmh_" + n, ".log").toString(); Options options = new OptionsBuilder().forks(1).include(c.getSimpleName()).output(logfile).build(); logger.info("running microbench for " + n + ", for about 20 seconds; details in " + logfile); RunResult runResult = new Runner(options).runSingle(); results.add(runResult); } catch (Exception e) { throw new RuntimeException(e); } }); return results; }
.forks(forks) .warmupIterations(warmupIterations) .measurementIterations(measurementIterations)