Количество объектов отключено в 2 раза
У меня есть сеанс профилирования dotMemory, и мне не удалось обнаружить утечку памяти, поэтому я сделал следующее:
- Начать сессию dotMemory
- Присоединяй WinDbg и врывайся в процесс
- Сделайте снимок в dotMemory
- Пусть процесс продолжается (
g
) так что dotMemory может взять Snapshop - После того, как был сделан снимок, снова включите процесс
Таким образом, я должен получить идентичные результаты, если приложение находится в состоянии ожидания, то есть ничего не делает (хорошо, он запускает насос сообщений).
Глядя на объекты в этом снимке dotMemory, я вижу 88000 объектов типа JProperty:
В 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 ответ
Похоже, что это была ошибка в dotMemory 2018.1.4. По некоторым причинам я не получал обновления автоматически. Сейчас я обновился до версии 2018.2.1 и количество объектов идентично.
Я пытался найти проблему в их баг-трекере, но не нашел.