@Disabled // Manual perf test only
    @Test
    void testPerf() {
        final UniqueIdGenerator uniqueIdGenerator = new UniqueIdGenerator(NodeType.STROOM, "stroom1");

        final int iterations = 10_000_000;
        final String[] arr = new String[iterations];

        final DurationTimer timer = DurationTimer.start();
        IntStream.range(0, iterations)
                .parallel()
                .forEach(i -> {
                    final String str = uniqueIdGenerator.generateId().toString();
                    arr[i] = str;
                });

        final Duration duration = timer.get();
        LOGGER.info("time: {}, {} ops/sec",
                duration,
                iterations / ((double) duration.toMillis() / 1000));

        for (int i = 0; i < iterations; i++) {
            Assertions.assertThat(arr[i])
                    .isNotNull()
                    .isNotBlank();
        }
    }
On a 12 core/24 thread cpu, I get about 4mil ops/sec
stroom-util/src/test/java/stroom/util/concurrent/TestUniqueIdGenerator.java