-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Labels
Description
Instead of loading all the classes in all the artifacts, let's do this:
- create a cache directory somewhere
- for each jar file we find, compare the last modified timestamp with the timestamp of the corresponding cache file. If cache file is newer, use that. If cache file is older, checksum of file with cached file checksum metadata. If the checksum matches, use it and update timestamp. Otherwise, rebuild the cache file.
The cache file is a sparkey file that maps class name to raw class-file data. It also contains special things like jar_checksum
Then we need a special lazy artifact object that only parses the class-file data when we need the information, which should be when we first discover that the class is needed in runtime, i.e. when we run the reachability analysis.