Community

Swift의 Small String Optimization

Swift의 String은 Collection 타입으로 실제 Struct 타입임에도 메모리를 Heap 주소에 저장합니다. 인스턴스가 복사되고 실제 변경이 이뤄질때 다른 힙 메모리 주소를 갖게하는 Swift의 CoW 특성을 아주 잘 활용하고 있죠! 여기까지는 많이들 아는 사실입니다 😁 그런데 길이가 작은 문자열에 대해서는 서로 다른 String 인스턴스가 힙 메모리 주소를 따로 할당받는것이 아닌 String 구조체 내에 저장되는것을 알고 계셨나요!? 이는 Small String Optimization 때문입니다. 작은 문자열에 대해서는 구조체 내에 저장하며 생성과 복사에 대한 오버헤드를 줄여줍니다. 이 낯선 Small String Optimization을 정리해봤습니다 🙋🏻

알림

알림이 없습니다