Implement jar directory snapshot caching. #1546
Currently, when we try to load a jar resource, we go through all the jar entries to figure out if there are any that match the directory information. When doing globbing or Dir.entries it also currently scans the jar again.
This PR optimizes this by creating a static JarCache reference that caches information about loaded jars, including representation of the directory structure. The inform1.7.10: user 1m24.332s
Results for 1.7.10: 1m24.332s
I have considered doing a per Ruby runtime cache, but that would require resources to have a reference to a Runtime and caching cross-runtime jar contents is also probably okay.
I've updated the PR to make sure that caching respects modification time and added a test to verify it.
This didn't really affect runtime for my stuff.jar test:
Please review/merge. :)