В одном из классов есть много объектов, присутствующих в .NET heap, как обнаружено с помощью следующей команды sos.поиск объектов с размером больше порога
!dumpheap -stat -type MyClass
Statistics:
MT Count TotalSize Class Name
00007ff8e6253494 1700 164123 MyNameSpace.MyClass
мне нужно найти экземпляры этих объектов, которые имеют ObjSize больше чем 5 МБ. Я знаю, что могу перечислить objsize всех 1700 экземпляров MyClass, используя следующие.
.foreach (res {!DumpHeap -short -MT 00007ff8e6253494 }) {.if ((!objsize res) > 41943040) {.echo res; !objsize res}}
С сценарием выше, я не получаю никаких результатов, хотя есть экземпляры объектов больше 5 МБ. Я думаю, что проблема может быть, что выход objsize является следующим
20288 (0x4f40) bytes
Сво строки, которые делают его более трудным для сравнения с любым порогом. Как я могу заставить этот скрипт отображать только объекты с объективом размером более 5 МБ?
Я удалил свой ответ, так как я не был достаточно осторожен, чтобы опубликовать аналогичное решение для! objsize. –