
MemGuard
MemGuard - легковесный утилитарный мод для Fabric/Forge/NeoForge, который снижает потребление оперативной памяти в больших сборках и на серверах. Он кеширует повторяющиеся NBT-строки, мониторит кучу и помогает вовремя замечать утечки памяти. Подходит для Майнкрафт 1.21.1.
MemGuard
Легковесный контроль памяти для долгих игровых сессий в Майнкрафт.
MemGuard - это небольшой утилитарный мод для Fabric / Forge / NeoForge (Minecraft 1.21.1), который решает вечную проблему больших сборок и серверов - раздувание оперативной памяти. Вместо того чтобы просто "чистить мусор" в случайные моменты, он делает это умно: кеширует повторяющиеся строки NBT, логирует состояние кучи и помогает отследить, что именно жрёт RAM.
Что делает MemGuard
1. Кеширование повторяющихся коротких NBT-строк
- Перехватывает вызов
NbtString.of(...) - Использует LRU-кеш на 2048 записей
- Убирает дублирование объектов для часто встречающихся ID и тегов в больших модпаках
Это особенно заметно, когда в мире много одинаковых предметов, сущностей или блоков с тегами - например, в модах на автоматизацию или магию.
2. Логирование периодических срезов кучи
- Каждый тик сервера замеряется используемая память
- Если превышен заданный порог - в лог пишется предупреждение
- Помогает быстро заметить, что сборка начала "течь"
3. Мониторинг жизненного цикла атласов текстур (клиент)
- После загрузки атласа MemGuard логирует занятую память
- Позволяет связать рост RAM с загрузкой ресурспаков или модов
Технические детали (без лишней сложности)
- Использует миксины для точечного вмешательства (
NbtCacheMixin,ServerChunkManagerMixin/ChunkCacheMixin,TextureCacheMixin) - Никакого нативного кода, никакого
System.gc()- мод не форсирует сборку мусора - Работает аккуратно, не конфликтует с другими оптимизационными модами
Важно знать
- MemGuard не гарантирует фиксированный FPS или MSPT
- Реальный эффект зависит от размера модпака, количества сущностей, JVM и длины сессии
- Обычно прирост заметен в средних и крупных сборках с кучей повторяющихся NBT-данных
Как проверить эффект на своей сборке
Чтобы понять, помогает ли MemGuard именно вам, проведите простое A/B-тестирование:
- Одинаковые версия Java, аргументы JVM, список модов, сид мира и настройки
- Одинаковая длительность теста (30-60 минут на прогон)
- Хотя бы 3 замеров без мода и 3 с модом
- Сравнивайте p50/p95 MSPT (через Spark), тренды занятой памяти из логов, GC-события (JFR)
Смотрите на медиану и процентили, а не на единичные выбросы.
Установка
Fabric
- Установите Fabric Loader 0.16+
- Скачайте Fabric API
- Поместите jar MemGuard в папку
mods/
Forge / NeoForge
- Установите соответствующий загрузчик под версию Minecraft 1.21.1
- Поместите jar в
mods/
Мод совместим с большинством оптимизационных модов, но перед использованием на продакшн-сервере протестируйте сборку.
Скачать MemGuard - простой способ сделать вашу сборку чуть более бережливой к памяти. Особенно актуально для больших модпаков, где каждая мелочь может спасти от вылета из-за нехватки RAM.
Как поиграть с друзьями с модом MemGuard?
Мод MemGuard куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода MemGuard будет готов за пару минут - BungeeHost сделает всё за вас.
