String의 Small String Optimization
iOYES
Swift의 String은 Collection 타입으로 실제 Struct 타입임에도 메모리를 Heap 주소에 저장합니다.
인스턴스가 복사되고 실제 변경이 이뤄질때 다른 힙 메모리 주소를 갖게하는 Swift의 CoW 특성을 아주 잘 활용하고 있죠!
여기까지는 많이들 아는 사실입니다 😁
그런데 길이가 작은 문자열에 대해서는 서로 다른 String 인스턴스가 힙 메모리 주소를 따로 할당받는것이 아닌 String 구조체 내에 저장되는것을 알고 계셨나요!?
이는 Small String Optimization 때문입니다.
작은 문자열에 대해서는 구조체 내에 저장하며 생성과 복사에 대한 오버헤드를 줄여줍니다.
이 낯선 Small String Optimization을 정리해봤습니다 🙋🏻
더 많은 콘텐츠를 보고 싶다면?
이미 회원이신가요?
2023년 10월 30일 오전 12:02
* 이 글은 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
... 더 보기안
... 더 보기