Re: Получить количество объектов в памяти по типам
От: Петрухин Эдуард Россия  
Дата: 25.04.17 12:10
Оценка: 116 (5)
Здравствуйте, Serginio1, Вы писали:

S>Есть web сервис. И занимаемая память растет неравномерно.

S>Можно ли программно узнать сколько объектов по типам сейчас в памяти для .Net 3.5?

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

S>Или есть уже какие то удобные профайлеры?

https://github.com/fremag/MemoScope.Net
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re: Получить количество объектов в памяти по типам
От: Mihas  
Дата: 25.04.17 07:18
Оценка: 16 (2)
Здравствуйте, Serginio1, Вы писали:

S>Или есть уже какие то удобные профайлеры?


1. То ли в 2013-ю, то ли в 2015-ю студию включили профайлер памяти и производительности. Работал сносно.
Я немножко подзабыл, поправьте, кто в курсе.
По-момему, в реалтайме можно наблюдать грубый график изменения количества используемой памяти. А после остановки программы, профайлер готовит детальный отчет.
Из особенностей. Для комфортной работы требует 16Г памяти десятки ГБ на диске.

2. До этого я использовал EQATEC Profiler (https://habrahabr.ru/post/109418/). Какую-то из раних версий. Она глючная, но беззащитная. Тоже хватало.

Есть еще несколько альтернатив. Я их не пробовал.
Re: Получить количество объектов в памяти по типам
От: Sshur Россия http://shurygin-sergey.livejournal.com
Дата: 25.04.17 06:56
Оценка: 14 (1)
Здравствуйте, Serginio1, Вы писали:

S>Есть web сервис. И занимаемая память растет неравномерно.

S>Можно ли программно узнать сколько объектов по типам сейчас в памяти для .Net 3.5?

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

S>Или есть уже какие то удобные профайлеры?

.NET Memory profiler? или нужно именно самому в коде узнать?
Шурыгин Сергей

"Не следует преумножать сущности сверх необходимости" (с) Оккам
Получить количество объектов в памяти по типам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 25.04.17 06:53
Оценка:
Есть web сервис. И занимаемая память растет неравномерно.
Можно ли программно узнать сколько объектов по типам сейчас в памяти для .Net 3.5?

То есть я могу сам по таймеру через GC.GetTotalMemory(true) и при достижении некоторых значений записать в лог, а потом сравнить динамику роста.
Или есть уже какие то удобные профайлеры?
и солнце б утром не вставало, когда бы не было меня
Re[2]: Получить количество объектов в памяти по типам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 25.04.17 07:10
Оценка:
Здравствуйте, Sshur, Вы писали:

S>.NET Memory profiler? или нужно именно самому в коде узнать?


Спасибо сейчас с ним разбираюсь. А программно нельзя?
и солнце б утром не вставало, когда бы не было меня
Re[2]: Получить количество объектов в памяти по типам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 25.04.17 07:24
Оценка:
Здравствуйте, Mihas, Вы писали:

M>Здравствуйте, Serginio1, Вы писали:


S>>Или есть уже какие то удобные профайлеры?


M>1. То ли в 2013-ю, то ли в 2015-ю студию включили профайлер памяти и производительности. Работал сносно.

M>Я немножко подзабыл, поправьте, кто в курсе.
M>По-момему, в реалтайме можно наблюдать грубый график изменения количества используемой памяти. А после остановки программы, профайлер готовит детальный отчет.
M>Из особенностей. Для комфортной работы требует 16Г памяти десятки ГБ на диске.

M>2. До этого я использовал EQATEC Profiler (https://habrahabr.ru/post/109418/). Какую-то из раних версий. Она глючная, но беззащитная. Тоже хватало.


M>Есть еще несколько альтернатив. Я их не пробовал.


Большое спасибо! Интересно.
и солнце б утром не вставало, когда бы не было меня
Re[2]: Получить количество объектов в памяти по типам
От: Mystic Artifact  
Дата: 25.04.17 11:45
Оценка:
Здравствуйте, Mihas, Вы писали:

M>Из особенностей. Для комфортной работы требует 16Г памяти десятки ГБ на диске.

VS2017 — при попытке получить подробную информацию по памяти через "take snapshot" на 32-х битном процессе у которого почти переполнена куча — она мило заявила что ничегошеньки сделать не может. Разумеется и системной и дисковой памяти полно.

PS: Я правда не стал её дальше насиловать, где проблема с памятью была и так было ясно. Просто с учётом third party — хотелось чуть больше подробностей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.