docs: public void runBenchmark() throws Exception {
          System.out.print(HORIZONTAL_RULE);
          System.out.println(" Setup & Initialization");
          System.out.println(HORIZONTAL_RULE);
  
          // connect to one or more servers, loop until success
          connect(m_client, m_config.servers);
  
          System.out.print("\n\n" + HORIZONTAL_RULE);
          System.out.println(" Starting Benchmark");
          System.out.println(HORIZONTAL_RULE);
  
          System.out.println("\nStarting bid generator\n");
          BidGenerator bidGenerator = new BidGenerator(m_client);
          long usDelay = (long) ((1.0 / BID_FREQUENCY_PER_SECOND) * 1000000.0);
          m_scheduler.scheduleWithFixedDelay(bidGenerator, 0, usDelay, TimeUnit.MICROSECONDS);
  
          System.out.println("\nStarting nibble deleter to delete expired data\n");
          NibbleDeleter deleter = new NibbleDeleter(m_client, m_config.displayinterval + 1);
          // Run once a second
          m_scheduler.scheduleWithFixedDelay(deleter, 1, 1, TimeUnit.SECONDS);
  
          System.out.println("\nWarming up...");
          final long warmupEndTime = System.currentTimeMillis() + (1000l * m_config.warmup);
          while (warmupEndTime > System.currentTimeMillis()) {
              requestAd();
          }
  
          // reset the stats
          m_fullStatsContext.fetchAndResetBaseline();
          m_periodicStatsContext.fetchAndResetBaseline();
  
          // print periodic statistics to the console
          m_benchmarkStartTS = System.currentTimeMillis();
          schedulePeriodicStats();
  
          // Run the benchmark loop for the requested duration
          // The throughput may be throttled depending on client configuration
          System.out.println("\nRunning benchmark...");
          final long benchmarkEndTime = System.currentTimeMillis() + (1000l * m_config.duration);
          while (benchmarkEndTime > System.currentTimeMillis()) {
              requestAd();
          }
  
          printResults();
          shutdown();
      }