On my i7 system I see a speed ranging from 500 to 4000 useragents per second (depending on the length and ambiguities in the useragent). On average the speed is around 2000 per second or ~0.5ms each. A LRU cache is in place that does over 1M per second if they are in the cache.
Please note that the current system take approx 400MiB of RAM just for the engine (without any caching!!).
Output from the benchmark ( using this code ) on a Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz:
In the canonical usecase of analysing clickstream data you will see a <1ms hit per visitor (or better: per new non-cached useragent) and for all the other clicks the values are retrieved from this cache at a speed of < 1 microsecond (i.e. close to 0).
The graph below gives you some insight of how the performance of Yauaa has progressed over time.
You can clearly see the increase in the time needed when adding a lot more rules. Also the periodic drops in time needed are clearly visible when a performance improvement was found.
Between version 5.5 and 5.6 a lot of extra rules to detect more brands of mobile devices on Android (causing the needed time to reach ~ 3ms). Followed by a few steps in a rewrite of that part resulting in effectively the fastest version to date.
In addition I have been able to run (most of) the same benchmarks on a very old Intel Xeon X5650. According to cpubenchmark.net this Xeon has only 65% of the single thread speed of the i7.