Description
The GlobbingPathFilter constructor is doing an expensive ImmutableList.copyOf while traversing down a path as part of filtering. ImmutableList internally first creates a Builder with capacity 4 - thus frequently has to do an ObjectArrays.arraysCopyOf.
Two things that can be improved here:
- as suggested by mduerig that private constructor - should not copy at all. Only the public constructors should. So the public constructors should be rewritten to reflect this.
- ImmutableList.copyOf cannot be passed an initial capacity unfortunately. Perhaps there's an alternative for this though.