When running UI tests in a thread (thread per Specification), the synchronized nature of ThreadLocalCache impacts performance dramatically. Since ThreadLocalCache uses a ThreadLocal as a backing store it is already thread-safe and the synchronized get() shouldn't be necessary.
In local testing it saved ~7 minutes of runtime @ 50 threads (1 grid node per thread), which equated to about a 30% speed improvement.
Don't unnecessarily synchronize methods of CachingDriverFactory.Threa…
…dLocalCache as it being backed by a ThreadLocal makes them thread safe.
Thanks for reporting @schillingr. You are right, synchronizing these methods was totally unnecessary. The fix will be part of 0.13.1 which will be released imminently.