Span<T>가 memcmp를 압도하다: .NET 바이트 배열 비교 성능 대폭 향상
2025-03-30

이 글에서는 `memcmp`, 루프, `Enumerable.SequenceEqual`, `Span.SequenceEqual` 등 다양한 방법을 사용한 .NET 환경에서의 바이트 배열 비교 성능을 벤치마킹합니다. 결과적으로 .NET 8 이상에서는 `Span.SequenceEqual`이 최고의 성능을 보이며, `memcmp` 및 기존 루프 방식을 훨씬 능가하는 것으로 나타났습니다. 작은 배열에서는 루프가 가장 빠르지만, 배열 크기가 커짐에 따라 `Span.SequenceEqual`의 우위가 두드러집니다. 따라서 .NET 8 이상에서는 `IEnumerable.SequenceEqual`을, .NET Framework에서는 `Span.SequenceEqual`을 사용하고, `memcmp` 및 사용자 정의 구현은 피하는 것이 좋다는 결론입니다.
개발
바이트 배열 비교