요즘에 관심있는 부분은 Lock 이 없고, Wait 가 없는 자료형태이다. 멀티 스레드 등의 IPC 처리를 하다보면, 꼭 나오는게 Lock 이다. Lock을 처리하는데 소비되는 퍼포먼스 낭비도 꽤 된다. 이를 줄일 방법이 없을까? Context-Switching 을 더디 하면서 Lock 을 사용할 수 있다면 참 좋을 것이다. 대충 논문을 조사해봐도, 이런류의 논문이 9x 년대에 부터 나온 것도 있는 걸 보면, 이미 선진들이 이런 분야로 연구한지 꽤 오래된 것을 알 수 있다. 대다수의 구현은 CAS(Compare-And-Swap) 방식으로 처리 중에는 Context Switching 이 발생하지 않는 CPU에 종속적인 원자적 연산을 사용한 방식이다. x86 계열에서는 CMPSXXX 니모닉을… Windows..
요즘 이걸 사용하고 싶다. 만들기보단 사용하고자 하는데, 마땅한게 보이지 않는다. 해쉬 테이블에 관한 설명은 다음과 같다. http://en.wikipedia.org/wiki/Hash_table 그런데, 그냥 해쉬 테이블 보다는 cache 에 가까운게 낫지 않을까? http://en.wikipedia.org/wiki/Page_replacement_algorithms loki 라이브러리를 보니, CachedFactory 가 있다. 근데, 이건 instance 를 만들어 내니, 필요없네. 물론 thread-safe 한 것도 아니다. 그럼 뭘쓸까? 고민중에 google 코드에서 sparsed hash map 보게 되었다. http://code.google.com/p/google-sparsehash/ 과연 메모..