Netty Data Container

2024-04-17

ByteBuf

자바 NIO의 ByteBuffer를 편리하게 사용할 수 있게 기능을 제공하는 API

  • Java NIO Buffer Class
  • readerIndex와 writerIndex로 읽기, 쓰기 작업을 구분한다.

https://parkhyeokjin.github.io/netty/2019/12/29/netty-chap3.html

Pooling

메모리 할당과 해제를 효율적으로 관리하기 위한 기법 (ByteBuf 재사용)

객체가 필요할 때마다 새로 생성하는 대신 미리 할당된 객체를 재사용한다.

PooledByteBufAllocator.DEFAULT

Reference Counting

객체의 참조 수를 계산하여 객체가 더 이상 사용되지 않을 때 자동으로 메모리를 해제하는 메커니즘

  • 객체의 생명주기 관리 (여러 곳에서 참조될 때, 사용되지 않을 때)
  • GC와 달리 실시간으로 객체를 판단해 메모리 누수 방지 가능

JVM에서의 Netty Reference Counting

JVM은 네티의 참조 카운팅을 인식하지 못해 직접 관리 해주어야한다.

→ 참조 수가 0이 되어도 GC 대상이 아니다.

Codec

Coder Decoden