performance of map in MSVC 10b2
I use map a lot in my daily work, so the performance of map is very
important to me. today i did a very simple test on MSVC10b2, using
std::map, std::unordered_map and boost::unordered_map, and found that
the test result is suprise to me.
here comes test code first:
MSVC10b2, WinXP
//-----------------------------------------------
#include <iostream>
#include <string>
#include <map>
#include <unordered_map>
#include <boost/unordered_map.hpp>
#include <boost/progress.hpp>
using namespace std;
int main()
{
typedef std::unordered_map<int, string> map_t;
//typedef boost::unordered_map<int, string> map_t;
//typedef std::map<int, string> map_t;
const int size = 1E7;
map_t imap;
{
boost::progress_timer t1;
boost::progress_display prog_bar(size);
for(int i=0; i<size; ++i) {
imap[i] = "test";
++prog_bar;
}
}
{
boost::progress_timer t2;
string buff;
for(int i=0; i<size; ++i) {
buff = imap[i];
}
}
return 0;
}
//-----------------------------------------------------------
and the test result:
MAP INSERT FIND
std::map 7.73s 1.98s
boost::unorder_map 5.47s 0.80s
std::unorder_map 9.91s 2.98s
am i wrong with the usage? or something i didn't catch up here?
thanks,
jimzshi
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]