Задать вопрос
@Envywewok

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

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

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

И еще доп. вопрос когда открываю в дебагере словарь почему то дублируются данные, в чем может быть проблема?
Вот фото, по логике у меня должна быть такая одна пара только.
5ce2991165ec8343895298.png
  • Вопрос задан
  • 910 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Merion Academy
    C# разработчик с нуля
    4 месяца
    Далее
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
Решения вопроса 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/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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