검색결과 리스트
hash_map에 해당되는 글 2건
- 2009.06.24 About STL : C++ STL 프로그래밍(6)-해시 맵(Hash Map)
- 2009.03.21 [C/C++] STL map, SLT hash_map, CAtlMap, TR1 unordered_map 성능 테스트 (1)
예전에 누군가를 통해서 VC++의 hash_map이 느리다라는 말을 들은 적이 있었지만 그 당시에는 FreeBSD에서 개발하고 있어서 ‘설마?’라는 생각만 하고 끝냈습니다.
시간이
지난 후 VC++의 hash_map이 느리다라는 말을 잊고
있었는데 근래 GPGStudy에서 다시 느리다라는 말이 언급 되었고,
‘온라인 서버제작자 모임’ 커뮤니티에서 ‘풍이’님이 손수 테스트한 결과를 코드와 같이 올려주셨고(http://cafe.naver.com/ongameserver/3619 ), 왜 VC의 hash_map이 느린가에 대해 주말에 웹 서핑을 통해서
관련 글을 보았습니다(http://minjang.egloos.com/1983788
, http://junyoung.tistory.com/1 ).
오늘 출근 후 바로 직접 테스트 해 보았습니다. 또 VS 2008 SP1에서 추가된 TR1의 unordered_map도 추가했습니다.
테스트 환경은 Windows 2008 Server 64bit, Visual Studio 2008 Pro SP1 입니다.
결과는 CAtlMap이 가장 빠르고, STL hash_map은 생각보다 느리고, 특히 TR1의 unordered_map은 너무 느렸습니다.
VC의 hash_map이 gcc의 hash_map 보다 느리다고 하니 VC++의 TR1 보다도 boost의 unordered_map이 더 빠르지 않을까 라는 생각을 합니다. 혹시 이거 테스트 가능한 분들은 테스트 부탁합니다.
백 마디의 말보다 하나의 코드가 더 좋습니다. ^^
테스트한 코드도 올리니 틀린 부분이 있으면 말로만 이야기 하지 마시고 직접 코딩을 하여 결과를 트랙백으로 보여 주시면 고맙겠습니다.
추가 :
오규태님이 boost의 unordered_map을 사용한 결과를 알려주셨습니다.
결론은 boost의 unordered_map은 빠릅니다. 단 CAtlMap보다는 느립니다.
hash insert : 494
hash
loop : 94
hash search : 78
hash erase : 118
unordered_map insert
: 256
unordered_map loop : 7
unordered_map search : 40
unordered_map
erase : 39
list insert : 222
list loop : 8
map insert : 512
map loop : 19
map search : 265
map erase : 355
atl insert :
59
atl loop : 9
atl search : 20
atl erase : 46
댓글