private void runBenchmark() throws InterruptedException {
long begin = System.currentTimeMillis();
MonitorableRegistry monitorableRegistry = new MonitorableRegistry();
List<MonitoredCounter> counters = createCounters(numCounters, monitorableRegistry);
final PcpMmvWriter mmvWriter = new PcpMmvWriter("parfait-microbenchmark-" + StandardMetricThroughPutBenchmark.class.getSimpleName() + ".mmv", IdentifierSourceSet.DEFAULT_SET);
mmvWriter.setPerMetricLock(usePerMetricLock);
mmvWriter.setClusterIdentifier(CLUSTER_IDENTIFIER);
final PcpMonitorBridge pcpMonitorBridge = new PcpMonitorBridge(mmvWriter, MetricNameMapper.PASSTHROUGH_MAPPER, new MetricDescriptionTextSource(), new EmptyTextSource());
DynamicMonitoringView selfStartingMonitoringView = new DynamicMonitoringView(monitorableRegistry, pcpMonitorBridge, 2000);
if (startPcp) {
selfStartingMonitoringView.start();
}
List<CounterIncrementer> counterIncrementers = executeBenchmark(numThreads, iterations, counters);
if (startPcp) {
selfStartingMonitoringView.stop();
}
long timeTaken = System.currentTimeMillis() - begin;
report(startPcp, counters, timeTaken, counterIncrementers);
}