-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
💁🏻♂ n-5 : NSCache와 딕셔너리로 캐시를 구성했을때의 차이를 설명해 주세요.
key-value쌍으로 데이터를 저장하는 자료구조라는 공통점이 있습니다.- NSCache는 메모리 공간이 부족하면 자동으로 캐시된 객체를 제거함으로 메모리 관리 측면에서 유용합니다.
- NSCache는 동시에 여러 스레드에서 접근하여 데이터를 수정할 수 있습니다.
- 딕셔너리는 thread-safe하지 않아서 여러 스레드에서 동시 접근하면 오류가 발생할 수 있습니다.
- 메모리 관리와 성능 측면에서 NSCache를 쓰는 것을 권장하지만
오버헤드가 발생하므로 단일 스레드 환경이거나 작은 데이터를 캐싱할 때는 딕셔너리를 사용할 수 있습니다.
💁🏻♂️💁🏻♂️ NSCache는 왜 thread-safe한가요?
- 딕셔너리와 달리 NSCache는 내부적으로 뮤텍스와 같은 동시성 제어 메커니즘을 사용합니다.
💁🏻♂️💁🏻♂️ NSCache는 왜 오버헤드가 발생하나요?
- 캐시된 객체가 많아지면 메모리 부족 현상이 발생할 수 있습니다.
- NSCache는 이를 방지하기 위해 캐시된 객체의 총 크기를 제한하고,
제한에 도달하면 LRU알고리즘을 사용하여 오래 전에 사용된 객체를 제거합니다. - 이런 추가적인 기능 때문에 딕셔너리보다 많은 오버헤드가 발생합니다.
Metadata
Metadata
Assignees
Labels
No labels