Окно просмотра Visual Studio показывает размер объекта / объем памяти - PullRequest
11 голосов
/ 01 февраля 2012

Не уверен, возможно ли это, но мне любопытно, и мне пока не повезло узнать это.Я хотел бы знать, знает ли кто-нибудь способ определения размера объекта в памяти из окна наблюдения VS.Очевидно, что профилировщик мог бы сделать это, но было бы очень удобно просто получить быстрый снимок этого из VS.Возможно ли это?

Ответы [ 2 ]

6 голосов
/ 18 октября 2017

Не уверен, поможет ли это другим, дадим ответ на этот вопрос.

В VS2015 вы можете остановиться в точке останова и использовать окно Diagnostic Tools.

  1. Меню
  2. Отладка
  3. Windows
  4. Показать инструменты диагностики
  5. Нажмите Take Snapshot
  6. Дождитесь создания снимка.
  7. Щелкните по голубым гиперссылкам в столбцах Objects или Heap Size
  8. Посмотрите на размер включенной переменной.

HTH.

2 голосов
/ 26 марта 2012

Я думаю, что это невозможно. См. Размер управляемого объекта (довольно старый, но, кажется, все еще действителен).

Размер объекта можно выбрать в окне «Немедленно». Смотрите мой ответ в Узнайте размер .net объекта .

Вы можете написать функцию в своем коде (адаптированную из вышеуказанного потока) и ссылаться на нее из часов.

Public Function GetSerializedSize(myObject As Object) As Long
    Using ms As New IO.MemoryStream
        Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryFormatter()
        bf.Serialize(ms, myObject)
        GetSerializedSize = ms.Position
    End Using
End Function

Однако это не является ни точным (я получаю в 2 раза меньшее значение для DatataTable), ни удобным (это значение необходимо обновить вручную), но оно дает некоторую подсказку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...