Profiled with JVisualVM:
Almost all of the time is burnt in AbstractValidationContext.isAlreadyValidatedForPath calling AbstractValidationContext.isSubPathOf.