같은 바이트 크기라도 포인터가 많은 객체와 바이트 배열의 GC 스캔 비용은 왜 다른가요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
GC는 살아 있는 포인터를 따라 참조 그래프를 추적하므로 같은 바이트 수라도 포인터 배열과 비포인터 바이트 영역의 scan 비용이 다를 수 있습니다. 할당 크기와 그래프 밀도를 별도 변수로 봅니다.
포인터를 줄이려고 unsafe 정수 주소를 쓰면 수명·이동·GC 계약을 깨뜨릴 수 있습니다. 구조적 공유·인덱스 배열·객체 수 감소를 안전한 타입 안에서 검토합니다. alloc·inuse·scan·GC CPU·p99를 같은 부하에서 비교합니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- GC는 살아 있는 포인터를 따라 참조 그래프를 추적하므로 같은 바이트 수라도 포인터 배열과 비포인터 바이트 영역의 scan 비용이 다를 수 있습니다. 할당 크기와 그래프 밀도를 별도 변수로 봅니다.
- alloc·inuse·scan·GC CPU·p99를 같은 부하에서 비교합니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: GC는 살아 있는 포인터를 따라 참조 그래프를 추적하므로 같은 바이트 수라도 포인터 배열과 비포인터 바이트 영역의 scan 비용이 다를 수 있습니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.