Remove caches#77
Merged
Merged
Conversation
ff83c6d to
f43a43e
Compare
Base#initialize calls #clear which in turns calls #update already
…kgConfig The #update method so far was keeping all pkg-config objects, instead of extracting the (very limited) information it needs and keeping only that. This uses an updated Utilrb::PkgConfig class which allows to load pkg-config files only partially
The real problem is that #update loads everything, which is really optimizing for the corner case (discovery) versus the common case (loading) This refactoring makes all loading lazy, and updates the test suite to achieve a 95%+ coverage.
This is needed for rock-inspect and rock-browse.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request removes the two main caches that were present, related to orogen loading
It depends on orocos-toolchain/utilrb#30.
rock-core/tools-orocosrb#94 must be applied at the same time, as some private APIs of Loaders::PkgConfig is used by Orocos::Process.
These two caches were meant to work around bad orogen loading behaviour in the pre-loaders days, that is the fact that orogen had a tendency to load the same package over and over again. This has been fixed by the orogen loaders.
Their side effect - and why I remove them - was that we ended up with more than 250k objects in the Ruby heap in a typical Syskit application, that were only related to these - and never used. That's more than 50% of the total.