iokernel-bufferperformance
zero-copy를 설명해 주세요
- 예상 시간
- 7분
30초 답변
꼬리질문
조금 더 깊게 물어본다면
답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.
zero-copy가 줄이는 비용은 무엇인가요?
sendfile은 어떤 상황에 유리한가요?
항상 zero-copy를 쓸 수 있나요?
DMA와도 관련이 있나요?
프론트엔드 개발자가 왜 알면 좋나요?
부가 설명
데이터를 복사하는 일은 생각보다 비쌉니다. 애플리케이션이 파일 내용을 직접 볼 필요가 없는데도 user buffer로 올렸다가 다시 kernel로 내려보내면 CPU와 메모리 bandwidth를 낭비합니다. zero-copy는 이런 왕복을 줄이자는 아이디어입니다.
다만 데이터를 압축하거나 암호화하거나 변환해야 하면 애플리케이션이 내용을 봐야 할 수 있습니다. 그래서 zero-copy는 “모든 I/O가 빨라지는 마법”이 아니라, 데이터 경로에서 복사가 병목이고 가공이 적은 상황에 잘 맞는 최적화입니다.
한 줄 정리
zero-copy는 데이터 복사 경로를 줄여 I/O 성능을 높이는 최적화입니다.