After doing some profiling, several things have jumped out at me:
JSONFile#readNode can consume a significant amount of memory all at the same time
- This is due to needing to throw the entire file into StringBuilder before JsonNode can load it
- Eventually these objects are GC'd, but testing on my own system shows peaks of up to ~1.2GB used
- With my testing, Fetcharr's resting state consumes ~400MB RAM
- I see only ~200MB of that accounted for in the profiler but most of it is byte[] and String
- For both of these classes, I keep seeing
PluginManagerImpl#downloadPlugins come up with YamlConfigurationLoader#build as the culprit
- That said, ZipFile seems to be a large portion of memory usage here
After doing some profiling, several things have jumped out at me:
JSONFile#readNodecan consume a significant amount of memory all at the same timePluginManagerImpl#downloadPluginscome up withYamlConfigurationLoader#buildas the culprit