when I run Antora on large sites, it's necessary to increase the old heap size (to 2048 or 4096). While looking into the problem with the node heap inspector, it seems like once Opal creates an instance of a class, it never lets go of it. I can access instances of classes at the very end of the pipeline even though they are only referenced by variables that are scoped to a function. That's because they are accessible via the Opal object. (for example, via Opal.Antora.
included_in). This doesn't seem very ideal because it means the application will only continue to consume memory as it grows. Are you aware of this and have you given it any thought?