@Envywewok

Как определить какой размер в памяти занимает словарь в C#?

Есть такой словарь
Dictionary<string, int[,]> tails = new Dictionary<string, int[,]>();

Далее я его заполняю данными и как узнать сколько он занимает места в памяти?

И еще доп. вопрос когда открываю в дебагере словарь почему то дублируются данные, в чем может быть проблема?
Вот фото, по логике у меня должна быть такая одна пара только.
5ce2991165ec8343895298.png
  • Вопрос задан
  • 807 просмотров
Решения вопроса 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
1 - https://www.jetbrains.com/dotmemory/ раз уж вам студия не мила..
2 - можно грубо оценить сделав пробег по словарю, и взяв длины строк (не забываем что это юникод) и размеры массивов (опять же int==int32 обычно), ну и добавив размер словаря (предполагая размер адреса, исходя из платформы)... (на самом деле размер адресного массива словаря, скорее всего кратен какой то степени двойки, точнее набору блоков, размером со степенями двойки.. но эта погрешность, скорее всего, будет не принципиальна, ее легко можно подстраховать, накинув килобайт)

ps где то поможет https://docs.microsoft.com/ru-ru/dotnet/csharp/lan... но не факт что везде ))

pps https://habr.com/ru/post/136609/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы