Это примерно 6 МБ для ~ 20 тыс. Объектов, то есть 300 байт на объект.Учитывая, что хэш-таблица может иметь размер, который может иметь в несколько раз больше сегментов, чем текущие записи, каждый блок может сам по себе быть указателем на список или вектор сталкивающихся объектов, причем каждое выделение кучи, вовлеченное во все это, вероятно, было округлено до ближайшегоСтепень двойки, и у вас есть отладка, которая может привести к некоторому дополнительному вздутию, все это звучит как раз для меня.
В любом случае, вы не получите симпатии к эффективности памяти или процессора чего-либов отладочной сборке ;-P.Microsoft может внедрить в нее любое помои, которые им нравятся, и пользователь не имеет права ожидать от производительности.Если вы обнаружите, что это плохо в оптимизированной сборке, вам есть о чем поговорить.
В целом, как масштабируется с size()
очень важно, но вполне законно задаться вопросом, как программапойти с огромным количеством относительно небольших неупорядоченных карт.Стоит отметить, что при определенном size()
поиске даже методом грубой силы в векторе, двоичном поиске в отсортированном векторе или двоичном дереве может быть лучше неупорядоченной карты, а также более эффективно использовать память.