NSCache 제안에 대한 기사를 읽었습니다. 많은 사람들이 NSCache에서 NSPurgeabledata를 사용하는 것이 좋습니다. 그러나 NSCache는 메모리가 부족하거나 카운트/비용 한도에 도달했을 때 이미 NSCache의 컨텐트를 제거 할 수 있지만 NSPurgeabledata를 사용해야하는 이유는 무엇입니까? 이미 데이터 객체를 사용하는 것보다 속도가 느리지 않습니까? 우리는 여기서 어떤 이점을 얻을 수 있습니까?NSCache에서 NSPurgeabledata를 사용하는 이유는 무엇입니까?
4
A
답변
1
개수 제한 및 총 비용 한도가 엄격하게 적용되지 않습니다. 즉, 캐시가 제한 중 하나를 넘으면 캐시의 구현 세부 사항에 따라 일부 오브젝트가 즉각적으로, 나중에 또는 전혀 제거되지 않을 수 있습니다. 여기 NSPurgeabledata를 사용하면 다음과 같은 이점이 있습니다. -
제거 가능한 메모리를 사용하면 시스템에서 메모리를 빠르게 복구 할 수 있으므로 성능이 향상됩니다. 페이징 가능한 것으로 표시된 메모리는 페이징이 시간 소모적 인 프로세스이기 때문에 가상 메모리 시스템에서 회수 할 때 디스크로 페이징되지 않습니다. 대신 데이터가 삭제되고 필요하면 나중에 다시 계산해야합니다. 잠금 메커니즘처럼 작동하거나 동기화처럼 작동한다고 말할 수 있습니다. 데이터가 하나의 쓰레드에 의해 접근한다면 다른 쓰레드는 첫 번째 쓰레드가 완료되지 않는 한 같은 쓰레드에 접근 할 수 없다.
관련 문제
- 1. NSCache에서 개체를 어떻게 제거 할 수 있습니까?
- 2. this.props.children을 사용하는 이유는 무엇입니까?
- 3. 포인터를 사용하는 이유는 무엇입니까?
- 4. Windows.Forms.Timer를 사용하는 이유는 무엇입니까?
- 5. DBMS_STATS.GATHER_TABLE_STATS를 사용하는 이유는 무엇입니까?
- 6. 마젠타를 사용하는 이유는 무엇입니까?
- 7. CONSTRAINT를 사용하는 이유는 무엇입니까?
- 8. NHibernate를 사용하는 이유는 무엇입니까?
- 9. fopen을 사용하는 이유는 무엇입니까?
- 10. GPGPU를 사용하는 이유는 무엇입니까?
- 11. 프리즘을 사용하는 이유는 무엇입니까?
- 12. CAssetManager를 사용하는 이유는 무엇입니까?
- 13. 을 사용하는 이유는 무엇입니까?
- 14. mako에서 Context를 사용하는 이유는 무엇입니까?
- 15. PHP에서 DoublyLinkedList를 사용하는 이유는 무엇입니까?
- 16. HTTP에서 TCP를 사용하는 이유는 무엇입니까?
- 17. 회원없는 인터페이스를 사용하는 이유는 무엇입니까?
- 18. WP7에서 UriMapping을 사용하는 이유는 무엇입니까?
- 19. 여기에서 BeginInvoke를 사용하는 이유는 무엇입니까?
- 20. 브라우저에서 접두사를 사용하는 이유는 무엇입니까?
- 21. GrayLog2에서 MongoDB를 사용하는 이유는 무엇입니까?
- 22. 인증에 mod_auth_kerb를 사용하는 이유는 무엇입니까?
- 23. end 함수를 사용하는 이유는 무엇입니까?
- 24. NetBIOS 별칭을 사용하는 이유는 무엇입니까?
- 25. Mongo에서 ElasticSearch를 사용하는 이유는 무엇입니까?
- 26. 개발자가 Silverlight를 사용하는 이유는 무엇입니까?
- 27. WF4에서 대리인을 사용하는 이유는 무엇입니까?
- 28. jQuery에서 "({})"을 사용하는 이유는 무엇입니까?
- 29. 인라인 스타일을 사용하는 이유는 무엇입니까?
- 30. CVS를 계속 사용하는 이유는 무엇입니까?
NSPurgeableData는 NSCache보다 더 민감합니다 (메모리 재활용). – Pei
YEs @Pei, 당신이 걸릴 수 있습니다 :) –