memcpy보다 빠르게: 사용자 정의 메모리 복사 방법 벤치마킹
2025-08-11
프로파일링 과정에서 저자는 `memcpy`가 큰 바이너리 메시지의 병목 현상을 일으키는 것을 발견했습니다. 그래서 REP MOVSB와 AVX 명령어를 사용한 여러 사용자 정의 메모리 복사 방법(정렬, 스트림 정렬, 프리페치 포함 스트림 정렬)을 구현하고 벤치마킹했습니다. 중소 규모 메시지에서는 루프 언롤링된 AVX 버전이 최고의 성능을 보였습니다. 대규모 메시지(>1MB)에서는 프리페치가 포함된 스트림 정렬 AVX 버전이 가장 빨랐지만, 소규모 메시지에서의 성능은 매우 저조했습니다. 결론적으로, `std::memcpy`는 성능과 적응성의 균형이 뛰어나며, 성능이 최우선이 아니라면 사용자 정의 메서드는 불필요합니다.
더 보기