Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 다중 테라 바이트 힙과 함께 ZGC를 사용하는 성능은 무엇입니까?


다중 테라 바이트 힙과 함께 ZGC를 사용하는 성능은 무엇입니까?


다중 테라 바이트 힙과 ZGC를 사용하면 몇 가지 성능이 영향을 줄 수 있습니다.

1. 낮은 대기 시간 : ZGC는 일시 중지 시간을 최소화하도록 설계되어 응용 프로그램이 큰 힙으로도 응답 상태를 유지하도록합니다. 응용 프로그램과 동시에 대부분의 쓰레기 수거 작업을 수행함으로써이를 달성하여 10ms 미만의 일시 중지 시간을 초래합니다 [3] [4].

2. 높은 처리량 : ZGC는 쓰레기 수집에 소요되는 시간을 최소화하여 높은 처리량을 제공하도록 설계되었습니다. 이렇게하면 메모리 사용 중에도 응용 프로그램이 효율적으로 계속 실행될 수 있습니다 [2] [4].

3. 멀티 맵핑 : ZGC는 멀티 맵핑을 사용하여 다른 범위의 가상 메모리를 동일한 물리적 메모리에 매핑합니다. 운영 체제가 추가 매핑으로 인해 3 배의 더 큰 메모리 사용량을보고 할 수 있으므로 메모리 사용이 증가 할 수 있습니다 [1].

4. 컬러 포인터 : ZGC는 컬러 포인터를 사용하여 64 비트 포인터에 메타 데이터를 저장합니다. 이로 인해 포인터를 해독 할 때 추가 작업이 발생할 수 있지만 멀티 맵핑 기술은 이러한 오버 헤드를 완화하는 데 도움이됩니다 [2].

5. Numa-Aware : ZGC는 NUMA 인식으로 설계되었으며, 이는 큰 힙과 다중 CPU 코어를 효율적으로 처리 할 수 ​​있음을 의미합니다. 이를 통해 쓰레기 수집기가 사용 가능한 하드웨어 리소스를 활용할 수 있습니다 [2] [4].

6. 튜닝 옵션 : ZGC에는 최대 힙 크기 설정 및 동시 GC 스레드 수와 같은 몇 가지 튜닝 옵션이 있습니다. 이 옵션은 메모리 사용 및 쓰레기 수집 성능의 균형을 맞추는 데 도움이 될 수 있습니다 [3] [4].

7. 실험 기능 : ZGC는 실험적인 기능이며 활성화하려면 특정 명령 줄 옵션이 필요합니다. 매우 짧은 일시 중지 시간이 필요하고 큰 메모리 할당을 처리 할 수있는 응용 프로그램에 적합합니다 [1] [3].

요약하면, 다중 테라 바이트 힙과 ZGC를 사용하면 낮은 대기 시간, 높은 처리량 및 효율적인 메모리 관리를 제공 할 수 있습니다. 그러나 신중한 튜닝이 필요하며 멀티 맵핑으로 인한 메모리 사용이 증가 할 수 있습니다.

인용 :
[1] https://stackoverflow.com/questions/62926652/the-java-zgc-garbage-collector-uses-a-lot of-memory
[2] https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/
[3] https://docs.oracle.com/en/java/javase/11/gctuning/z-garbage-collector1.html
[4] https://developers.redhat.com/articles/2021/11/02/how-choose-best-java-garbage-collector
[5] https://dzone.com/articles/java-z-garbage-collector-zgc--deep-dive-with-exam