MemorySweep
일정 주기 또는 메모리 사용률 기준으로 자바 가비지 컬렉션을 강제 호출해 주는 유틸리티 모드. 자동 청소 간격과 임계치를 설정으로 조정할 수 있고, 수동 명령어도 제공합니다.
📖 소개
MemorySweep는 마인크래프트가 돌아가는 자바 가상머신(JVM)에 가비지 컬렉션을 주기적으로 강제 호출하는 유틸리티 모드입니다. 하는 일은 단순합니다 — 정해진 주기가 되거나 메모리 사용률이 설정한 임계치를 넘으면 System.gc()를 불러 더 이상 참조되지 않는 객체를 정리하게 합니다.
작동 방식은 두 가지입니다. 하나는 시간 기반 자동 청소로, 기본 15분 간격이며 설정에서 조정할 수 있습니다. 다른 하나는 사용률 기반 청소로, 기본값은 메모리 사용률 75%입니다. 즉시 정리하고 싶을 때는 /memorysweep_c(클라이언트) 와 /memorysweep_s(서버) 명령어를 직접 쓸 수 있습니다.
클라이언트와 서버 양쪽에서 동작하며, 모드 페이지는 강제 GC로 인한 멈춤을 줄이려면 -XX:+ExplicitGCInvokesConcurrent JVM 인자를 함께 쓰거나 Java 11 이상의 ZGC를 쓰라고 안내합니다.
중요한 점 — MemorySweep는 할당된 RAM을 늘려 주지 않습니다. 이미 확보된 힙 안에서 정리를 앞당길 뿐이라, 모드팩에 배정한 RAM 자체가 부족하면 이 모드로 해결되지 않습니다.
🕒 이 모드는 언제 쓰는가
장시간 세션 뒤 메모리 사용률이 계속 높게 유지될 때. 설치 직후부터 별도 조작 없이 동작합니다.
📦 어떤 모드팩에서 중요한가
메모리 여유가 빠듯한 대형 모드팩 환경. 클라이언트와 서버 양쪽에 넣을 수 있습니다.
🎮 플레이 체감 변화
게임플레이 자체는 달라지지 않습니다. F3 화면의 메모리 사용률이 주기적으로 떨어지는 것으로만 확인됩니다.
🚀 시작 가이드 — 첫 30분 동안 해야 할 것
1단계 — 모드팩에 포함돼 있으면 그대로 둡니다. 기본 설정(15분 간격, 75% 임계치)으로 즉시 동작합니다.
2단계 — 설정 파일에서 간격·임계치를 조정합니다. 기본값이 맞지 않으면 여기서 바꿉니다.
3단계 — 필요하면 /memorysweep_c 또는 /memorysweep_s 로 즉시 정리합니다.
다음 — JVM 인자 점검. -XX:+ExplicitGCInvokesConcurrent 를 추가하거나 Java 11+ 의 ZGC를 쓰면 강제 GC의 멈춤이 줄어듭니다.
💡 플레이 팁
- 기본 설정 그대로도 동작 — 15분 간격 + 75% 임계치가 기본값이라 별도 설정 없이 바로 쓸 수 있습니다.
- 즉시 정리는 명령어로 —
/memorysweep_c(클라이언트),/memorysweep_s(서버). - JVM 인자와 함께 — 모드 페이지는
-XX:+ExplicitGCInvokesConcurrent를 함께 쓰거나 Java 11+ 의 ZGC를 권장합니다. 강제 GC로 인한 멈춤을 줄이기 위해서입니다. - RAM 할당이 먼저 — 힙 자체가 모자라면 GC를 아무리 자주 돌려도 해결되지 않습니다. 런처에서 RAM 할당부터 확인하세요.
⚠️ 자주 헷갈리는 부분
- • RAM을 늘려 주는 모드가 아닙니다 — 이미 할당된 힙 안에서 정리를 앞당길 뿐입니다.
- • 강제 GC는 멈춤을 만들 수 있습니다 —
System.gc()호출 자체가 짧은 정지를 유발할 수 있어, 모드 페이지가 JVM 인자 조정을 권하는 이유가 이것입니다.
❓ 자주 묻는 질문
RAM을 늘려 주는 모드인가요?
아닙니다. 할당된 힙 안에서 가비지 컬렉션을 앞당겨 실행할 뿐입니다. 모드팩에 배정한 RAM 자체가 부족하면 런처에서 할당량을 먼저 늘려야 합니다.
청소 주기는 어떻게 바꾸나요?
기본 15분 간격이며 설정에서 조정할 수 있습니다. 시간 기반 외에 메모리 사용률 기반 트리거도 있고, 기본 임계치는 75%입니다.
수동으로 즉시 실행할 수 있나요?
/memorysweep_c(클라이언트)와 /memorysweep_s(서버) 명령어가 있습니다.