Количество объектов отключено в 2 раза - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть сеанс профилирования dotMemory, и мне не удалось обнаружить утечку памяти, поэтому я сделал следующее:

  1. Запустить сеанс dotMemory
  2. Прикрепите WinDbg и вмешайтесь в процесс
  3. Сделайте снимок в dotMemory
  4. Позвольте процессу продолжаться (g), чтобы dotMemory мог взять магазин моментальных снимков
  5. После того, как был сделан снимок, снова включите процесс

Таким образом, я должен получить идентичные результаты, если приложение находится в состоянии ожидания, то есть ничего не делает (ну, он запускает насос сообщений).

Глядя на объекты в этом снимке dotMemory, я вижу 88000 объектов типа JProperty:

dotMemory Screenshot

Однако в WinDbg я вижу двойное количество объектов:

0:021> !dumpheap -stat -type JProperty
Statistics:
              MT    Count    TotalSize Class Name
000007fe7d3a3c28    83930      3357200 Newtonsoft.Json.Linq.JPropertyKeyedCollection
000007fe7d3a4ef0   177104      4250496 Newtonsoft.Json.Linq.JProperty+JPropertyList
000007fe7d3a4b80   177104     18418816 Newtonsoft.Json.Linq.JProperty
Total 438138 objects

Кто не прав - или это известная проблема использования отладчика вместе с dotMemory?

Я использую dotMemory 2018.1.4 и WinDbg 10.0.15063 в Windows 7, отлаживая программу x64, если что-то из этого имеет значение.

1 Ответ

0 голосов
/ 09 сентября 2018

Похоже, это была ошибка в dotMemory 2018.1.4. По некоторым причинам я не получал обновления автоматически. Сейчас я обновился до версии 2018.2.1 и количество объектов идентично.

Я пытался найти проблему в их баг-трекере , но не нашел.

...