Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Supersedes #344
Fixes excessive memory usage introduced in #306 by:
CombinedJarIndex'sEntyIndex,ReferenceIndex, andBridgeMethodIndexactual combinations ofMainJarIndex's andLibraryJarIndex's indexesEnigma'smainReferencedPredicate; it was just wasted overhead since the number of libs classes is tinyBREAKING not running custom indexers overrestored: performance is fine with it; avoids breaking indexers that need the combined scope all at onceCombinedJarIndex's classes; they already ran over main's and lib'sImplementing proper combining for just
EntyIndexandReferenceIndexwas enough to fix performance (I didEntryIndexfirst, so justReferenceIndexmight be enough); it ran fine before I combinedBridgeMethodIndexes.It's probably possible to combine
InheritanceIndexes, too, but it could be considerably more complex and might involve the combined index actually doing some of its own indexing.Same goes for
LambdaIndexes.BREAKING (maybe*): the combined
ReferenceIndexdoes not currently index references from the main jar to libs; it's just a combination of the main and libReferenceIndexes.*Not sure if this is actually true and not sure how to check.
minor breakage:
EntyIndex,ReferenceIndex, andBridgeMethodIndexinto sealed interfaces with hidden implementations; they're no longer instantiable or extendable by users (probably not intended to be instantiable or extendable anyways)CombinedJarIndexfinaland its constructorprivate(not intended for extension anyway)