Most applications I encounter use UUID.randomUUID().toString() to generate unique IDs for various things like requests, transactions.... which is quite a slow implementaion.
Since I implemented a UID generator in SPF4J, I decided to do a little bit of benchmarking with JMH:
and here are the results on my 4 core macbook pro:
Benchmark Mode Samples Score Error Units
o.s.c.UIDGeneratorBenchmark.jdkUid thrpt 60 261797.856 ± 11388.450 ops/s
o.s.c.UIDGeneratorBenchmark.atoUid thrpt 60 8102280.696 ± 159030.080 ops/s
o.s.c.UIDGeneratorBenchmark.scaUid thrpt 60 25371629.029 ± 354517.591 ops/s
As you ca see the spf4j UID generator is 100x faster.
And as you can see it is significantly faster than the implementation using atomic instructions. In a lot of the code I stumble upon I see a lot of unjustified use, and the scalability impact is significant.