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(서버) 명령어가 있습니다.

📦 이 모드가 포함된 모드팩

🔗 관련 모드