The popular Java Microbenchmark Harness performance testing tool is supported now with an AirConcurrentMap test specifically for it. The test shows basically the same high performance as the original ones included in the distribution, but now the JMH harness shows the performance in a more familiar and simpler way. This lends further support to our dramatic performance claims. The test also writes a file ‘memoryReport.txt’ which shows the memory efficiency differences per entry for the compared Maps.
Also, the Map.forEach() method is now much faster by being supported in a way that uses the AirConcurrentMap native MapVisitor technique internally and transparently. Now forEach is almost as fast as MapVisitor. Much existing code will be many times faster without any effort other than changing the Map constructors. The higher performance can be seen in the new JMH tests. The performance increase starts at about 1K Entries and becomes very significant above about 10K entries, finally becoming about 3 to 5 times.
If you have at least a thousand Entries, AirConcurrentMap will provide you these results vs ConcurrentSkipListMap and ConcurrentHashMap
We provide tests to prove that AirConcurrentMap is the fastest due to concurrent use of cores. All you need to do is download AirConcurrentMap and try these tests to see that we have the fastest iterators, the best speed in concurrent, ordered ops, and the best memory management.
AirConcurrentMap iterates faster than the standard Java Maps. In the graph below, AirConcurrentMap’s Iteration is faster at all speeds but near zero. Beyond this size and up to full memory, AirConcurrentMap maintains the lead. If even more speed is desired, the client code can implement MapVisitors and ThreadedMapVisitors.
Here are the results for larger AirConcurrentMaps.
This chart shows all the combinations possible with Java 8, including the new streams feature in serial or parallel. AirConcurrentMap beats all of the scanners for any concurrent Map above a certain size. The non-concurrent Maps HashMap and TreeMap are not shown but are similar. Look to the right side of the chart to see the big data area as Entry count increases. Here we are scanning the keySet, showing that the AirConcurrentMap keySet iterator in red becomes faster at about log2(15)=32K Entries, and then it has tremendous relative speed. The AirConcurrentMap visitor interface is shown by the brown curve that dominates all of the scanners, starting at only a few Entries. Even the Java 8 streams performance is less than the AirConcurrentMap Iterators and MapVisitor technique for ConcurrentSkipListMap.