Project: aptanastudio
Issue APSTUD-4469: Use StringPools to avoid duplicated strings - notable Bundle infrastructure and PHP builtins
We duplicate "path", "scope" and "customProperties" key values in bundle model elements. Using a StringPool to reuse equal strings would help bring down our memory usage quite a bit there. Long-term we may want to handle freeing the strings from the pool in a smarter way when the referring elements themselves are removed (say a bundle gets removed) - but the effort required given that unusual/unlikely use case may not warrant it. Secondly, we should use StringPool for a lot of the duplicated string values in PHP builtins. We're already hanging onto the entire thing in memory, so having them live in a StringPool that lives as long as the plugin won't actually make it any worse. We'd have to remove the pool if we ever refactored to persist the index to disk like we do in core.
Story points: 8