public void benchExtract(String resPath) throws IOException {
    System.out.println("Benchmarking extract...");

    int extractLength = 1000;
    long[] randoms =
        BenchmarkUtils.generateRandoms(MAX_QUERIES, buffer.getOriginalSize() - extractLength);

    double totalTime = 0.0;
    BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(resPath));

    for (long offset : randoms) {
      long start = System.nanoTime();
      byte[] result = buffer.extract((int) offset, extractLength);
      long end = System.nanoTime();
      bufferedWriter.write(result.length + "\t" + (end - start) + "\n");
      totalTime += (end - start);
    }

    double avgTime = totalTime / MAX_QUERIES;
    System.out.println("Average time per extract query: " + avgTime);
    bufferedWriter.close();
  }