콘텐츠로 이동

개요

이 글은 이 문서 전체에서 가장 오래 걸려 쓴 글이라고 해도 될 것이다(). 정확성을 위해 Windows와 Linux에서 성능 테스트를 잔뜩 했는데, 결과가 꽤 뜻밖이었다.

테스트의 세부 내용과 로그, 리포트, Spark, GCLog 등은 Test - Java에서 볼 수 있다.

flowchart TD
    A[선택]
    A --> Java8
    A --> Java11
    A --> Java21
    Java8 --> Dragonwell
    Java11 --> Dragonwell
    Java21 --> Windows
    Windows --> M1[메모리 충분]
    M1 --> C[GraalVM Enterprise Edition]
    Windows --> M2[메모리 부족]
    M2 --> Semeru
    Java21 --> Linux
    Linux --> M2
    Linux --> D[메모리 충분]
    D --> F[높은 호환성]
    F -->|필요| C
    F -->|불필요, 실력이 있다면| E[Azul Zing]

Azul Zulu는 Java 8 이상을 지원한다. Java 7과 6은 고객이 되어야 받을 수 있다.

여러 번 테스트해 본 결과, MC 서버에는 G1GC와 ZGC가 가장 잘 맞는다(Zing의 C4도 있다).

골라 보자!

flowchart TD
    A[선택]
    A --> B[머신 사양 충분, 최소 4코어 8GB, 권장 8코어 8GB]
    A --> L[머신 사양 미달] --> G1
    B --> C[Java 21+ 또는 Dragonwell 11] --> ZGC
    B --> O[그 외] --> G1

ZGC는 멈춤이 거의 없어 플레이어에게 더 좋은 경험을 주고, 멀티코어도 더 잘 활용한다.

GC 세부 최적화는 각 Java의 최적화 가이드를 읽어 보자.