@Test
void testLoadAndConcurrentGets() {

    // Wait for visualvm to spin up
    try {
        Thread.sleep(0);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    int entryCount = 5;
    int threads = 6;
    // Load the data
    doBigLoadGetAndPurgeForPerfTesting(entryCount, true, false, false, true);
    final ExecutorService executorService = Executors.newFixedThreadPool(threads);
    final List<CompletableFuture<Void>> futures = IntStream.rangeClosed(1, threads)
            .boxed()
            .map(i -> {
                LOGGER.info("Creating future {}", i);
                return CompletableFuture.runAsync(() -> {
                    LOGGER.info("Running load {} on thread {}", i, Thread.currentThread().getName());
                    // Now query the data
                    doBigLoadGetAndPurgeForPerfTesting(
                            entryCount, false, true, false, true);
                }, executorService);
            })
            .collect(Collectors.toList());
    futures
            .forEach(cf -> {
                try {
                    cf.get();
                } catch (InterruptedException | ExecutionException e) {
                    throw new RuntimeException(e);
                }
            });
    final SystemInfoResult systemInfo = byteBufferPool.getSystemInfo();
    LOGGER.info(systemInfo.toString());
}