← Назад к ресурсам

Dimension Leak Fix

Fixes memory leaks when switching dimensions. Mods like Collective, AmbientSounds and Create retain old worlds in RAM - this mod cleans them up automatically, recovering 2-4 GB per transition.

Modrinth optimization

Описание

Every time you travel between the Overworld, Nether, and End, your client creates a new `ClientWorld`. The old world _should_ be garbage-collected, but several popular mods accidentally hold references to it - causing it to stay in memory forever. After just a few dimension changes, this can eat **4-8 GB of RAM**, leading to lag spikes, stuttering, and eventually crashes. **Dimension Leak Fix** automatically detects dimension transitions and surgically breaks these retention chains, recovering 2-4 GB of memory per transition. ### What it fixes Source | Problem | Impact ---|---|--- **Entity references** | Entities in the old world hold a `.level` field pointing back to it | ~200 MB per transition **Collective** | `BlockEntityData.cachedBlockEntities` retains old worlds through nested WeakHashMaps | ~1.2 GB per transition **AmbientSounds** | AirPocketScanner thread holds thousands of ChunkSections as a GC root | ~1.4 GB per transition **Create** | Renderer caches hold references to old world data | Variable **Chunk storage** | Old world's ChunkManager retains all loaded chunks in memory | ~1-3 GB per transition ### How it works The mod uses a two-phase approach: - **Phase A** (instant): When you change dimension, the mod immediately detaches entity references, flushes Collective caches, stops the AmbientSounds scanner thread, detaches Spark command senders, and invalidates Create's renderer. - **Phase B** (3 seconds later): The mod clears the old world's chunk storage array and entity sets. This is delayed to avoid interfering with the renderer during the transition. ### Compatibility - Client-side only - does not need to be installed on the server - Works with or without any of the mods listed above - the mod detects what's installed and only applies relevant fixes - Tested with 200+ mods including Iris, Sodium, Distant Horizons, Create, Collective, AmbientSounds ### Log output The mod logs everything it does. Example output after a dimension change: [DimensionLeakFix] Dimension change detected, cleaning up old world... [DimensionLeakFix] Entities: 131 world references detached [DimensionLeakFix] Collective: 1 cache(s) flushed in cachedBlockEntities [DimensionLeakFix] AmbientSounds: scanner stopped (3 fields cleared) [DimensionLeakFix] Create: renderer cache invalidated [DimensionLeakFix] Phase A complete (137 operations) [DimensionLeakFix] Phase B scheduled (3s delay) [DimensionLeakFix] Phase B: releasing old world data... [DimensionLeakFix] Chunks: 2809 slots released [DimensionLeakFix] loadedChunks: 2809 entries cleared [DimensionLeakFix] Phase B complete (2810 references released, ~3706 MB freed) Used in the [Legends Reborn: Medieval](https://www.curseforge.com/minecraft/modpacks/legends-reborn-medieval) modpack.