У меня есть программа C#, который имеет словарь, я определил это так:использование памяти словаря в C#
Dictionary dict<Int32,Int32> = new Dictionary<Int32,Int32>();
Затем я добавил 100 запись в моем словаре. Теперь я хочу знать точное использование памяти этого словаря. , пожалуйста, не говорите о sizeof
и некоторых подобных методах, я хочу математический способ вычислить его, например, если есть какой-либо указатель или любой хэш-ключ, который должен быть сохранен, сообщите мне (на самом деле я не знаю точное способ, которым работает словарь).
В принципе, нет возможности рассчитать точный размер. В этой ссылке есть несколько хороших предложений для оценки распределения памяти: http://social.msdn.microsoft.com/Forums/vstudio/en-US/b871dee4-6eb5-4dca-be79-b9589a79f5e9/calculate-size-of- a-object-in-net? forum = clr – paulsm4
Это недетерминированный. Словарь создает список для хранения всех ключей, имеющих один и тот же хэш-код. У вас может быть один список для каждого хэш-кода или нет, в зависимости от того, сколько ключевых столкновений у вас есть. – Kevin
Вы знаете размеры примитивных типов, и вы знаете размер ссылки в своей среде. Вы можете рассчитать его, но это утомительная работа (и не учитывает заполнение). Почему вы хотите сделать это точно? –