mmcmf-1.0.0.jar
Curse Maven Snippet
What's new
MemoryMaster 1.0.0
First official release. 7 modules, all enabled by default and individually disableable.
Added
- structures: Structure template cache cap (LRU, default 30); eviction uses reflection to locate the cache, not dependent on mixin taking effect.
- diagnose: Read-only diagnostic trio — memory pool/GC reports, environment and mod conflict scanning, and in-process JFR-based tracking of 96–128 byte allocation sources (aggregated by "class + allocation site," executed asynchronously).
- guava: Call count and duplication statistics for
ImmutableMap.of(K,V)and three Guava internal constructors. - bytepool: 16/32/64/128 KB bucketed pool; weakly references rented-out arrays to prevent data corruption caused by duplicate returns.
- objpool: Event listener lists pre-allocated by historical peak; peaks written to
cache/mmcmffor use on next startup. - smallobj: Creation-count statistics for BlockPos / ItemStack / CriterionProgress / AdvancementProgress.
- secondopt: Mod conflict detection, read-only leak observation, automatic yielding on write-type overlap.
Safety Mechanisms
- MixinConfigPlugin validates target classes one by one, using only resource lookup and not loading classes.
- All injections use
require = 0; mixin config usesrequired = false. - All optimization logic is wrapped in try-catch; exceptions degrade to vanilla behavior.
- Two-stage self-check (transform stage + after server startup); behavior-type injection points that fail are automatically downgraded.
- Mixin config uses
priority = 9999, applied after other mods. /mmcmf panicdisables everything with one command (effective immediately for the current session, and writes a marker so the next startup does not inject).
Known Boundaries
- In 1.21.1,
BlockPos.of(int,int,int)does not exist; creation goes through the constructor, and Mixin cannot replace the result ofnew, so no BlockPos interning is done. - ItemStack / CriterionProgress / AdvancementProgress are mutable objects; reusing them would corrupt data, so they are only counted.
- Netty already uses pooled direct buffers;
byte[]pooling is only applied to BufferedOutputStream buffers that will not escape. - Write-type optimizations that overlap with FerriteCore / ModernFix / C2ME / Clumps are not implemented; instead, they are detected and yielded to.
Configuration
config/mmcmf.toml(comments in English, auto-generated on first startup)config/mmcmf.panic(if present, forcibly disables all modules, including mixin injection)
This mod has no additional files

