title: Why is there space overhead when deserializing from a binary archive into a std::map
body: <p>this is my program:</p>
  
  <pre><code>void loadB(map&lt;unsigned int,myParam&gt; &amp; myParams)
  {
      std::ifstream ifs("/tmp/all_params", std::ios::in | std::ios::binary);
      if( ifs.good() ){
          try{
              boost::archive::binary_iarchive ia(ifs);
              ia &gt;&gt; myParams;
  
              ifs.close();
          }catch(boost::archive::archive_exception&amp; ex){
              syslog(LOG_NOTICE, "Archive Exception during deserializing params");
          }
      }else{  }
  }
  </code></pre>
  
  <p>The size of the file "/tmp/all_params" is 133M but when I load it with the loadB() function the memory consumption is more than 650M(1.7G virtual). Does it make any sense?</p>
  
  <pre><code>PID   USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  16619 root      20   0 1767468 653772   2988 S   3.7  8.0   0:06.21 engine                                                                                                                                           
  </code></pre>