-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimization with caching #10
Comments
From @liljencrantz:
|
From @spkrka: I have a couple of arguments for caching:
Yes, we should cache on both code version and artifact version. |
From @mattnworb:
I think we should figure out if the costly part of "loading" rt.jar is 1) decompressing or zip file entries in the jar, 2) reading the bytes off disk (in which case I don't think a sparkey file would help), 3) the parsing work that asm does once it is handed an Of course it could be any combination of these four. My guess would be that 3 is the costliest part, in which case a cache of class name to parsed
+1 |
From @mattnworb: It would also be useful to have a flag in the plugin for |
From @pettermahlen: I don't think we should use the last modified timestamp; that might mean we don't refresh caches when we should, since you can't trust those timestamps. Otherwise, I think this could potentially be a good idea. |
Instead of loading all the classes in all the artifacts, let's do this:
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.
The text was updated successfully, but these errors were encountered: