CS
[CS] RVO
programmer-faust
2025. 9. 5. 14:02
- 순서
- RVO란?
- RVO의 작동방식
- RVO의 이점
- NRVO
- RVO란?
- C++같은 프로그래밍 언어에서 함수가 객체를 반환할 때 발생하는 불필요한 복사 생성자 또는 이동 생성자 호출 작업을 제거하는 컴파일러 최적화 기법임.
- 리턴할 객체를 호출자의 메모리 공간에 직접 생성해버리는 방식.
- RVO의 작동방식
- 임시 객체 생성 및 복사/이동 생략
- 컴파일러 최적화
- RVO의 이점
- 성능 향상: 객체 복사 및 이동은 비용이 많이 드는 작업일 수 있는데, RVO는 이러한 작업을 생략하여 프로그램 실행 속도를 높임
- 코드의 투명성: 개발자는 RVO를 직접 구현할 필요 없이 컴파일러에게 맡길 수 있어, 효율적인 코드를 작성하는데 집중할 수 있
- NRVO
- Named Return Value Optimization으로 함수 내에서 이름을 가진 지역 객체를 반환할 때도 동일한 최적화가 적용되는 것