Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420

Отобразить потребление памяти различных частей приложения

12.12.2017, 01:55. Показов 2498. Ответов 3

Студворк — интернет-сервис помощи студентам
Всем привет. Хочу разделить приложение на модули (допустим, библиотеки) и выводить на графике потребление памяти каждым модулем.
Например, есть модуль кэширования, есть модуль связи с сервером, или с базой.
Можно ли как-то с помощью кода логически разграничить приложение на модули и узнать потребление памяти каждого модуля?
Или другой случай - Task.Run(). Как узнать память, потребляемую данным таском?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2017, 01:55
Ответы с готовыми решениями:

Потребление памяти
Здравствуйте! Озадачился оптимизацией потребления памяти, поэтому подскажите, каким способом можно узнать сколько некоторые части кода...

Огромное потребление памяти
Консольная программа запускается на Ubuntu server 14.04 под mono 4.6.2 в фоновом режиме При запуске начинает выедать огромными порциями...

Потребление памяти и ресурсов процессора
Пишу программу. Можно ли узнать и записать в переменную сколько она использует памяти и на сколько нагружает процессор? Добавлено...

3
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,437
12.12.2017, 06:58
Лучший ответ Сообщение было отмечено ai-zer как решение

Решение

ai-zer, это довольно мутная задача. Вот у вас библиотека "А" массово создаёт классы из библиотеки "Б". Кто в данном случае память занимает? Библиотека "А", создающая классы или библиотека "Б", чьи классы создаются?

Инструментов для анализа ресурсов отдельных "модулей" нет, ибо нет и чёткого понимания, что есть модуль. На вскидку, могу посоветовать брать снапшоты кучи и анализировать её состав: какие классы её наполняют и из какой библиотеки какой класс взялся.

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

Гуглите в сторону счётчиков производительности и прочих приёмов анализа работы приложения. Лично я вам, к сожалению, тут конкретного ничего не подскажу.

P.S.
С моей точки зрения, такая фича - больше вреда несёт, чем пользы. Если уж нужен мониторинг, то собирайте информацию о потребляемых ресурсах всего приложения, благо, что для этого есть стандартные средства. Кому принесёт польза информация о расходе памяти конкретной библиотекой? Да и вычислить этот расход можно сверив объём занятой памяти приложением до загрузки и после загрузки библиотеки.

P.P.S
Domain-neutral библиотеки (или лежащие в кеше нативных образов) и уже загруженные в домен в том же процессе, имеют тенденцию переиспользоваться и не занимать (практически) места при загрузке в новый домен. Так что вопрос с занимаемой библиотекой памятью довольно мутен.
1
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420
12.12.2017, 11:51  [ТС]
Usaga, спасибо. Знал, что это будет непросто, раз нет нигде инфы
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
19.12.2017, 00:03
Цитата Сообщение от Usaga Посмотреть сообщение
P.P.S
Domain-neutral библиотеки (или лежащие в кеше нативных образов) и уже загруженные в домен в том же процессе, имеют тенденцию переиспользоваться и не занимать (практически) места при загрузке в новый домен. Так что вопрос с занимаемой библиотекой памятью довольно мутен.
Даже не обязательно в том же процессе. См. например принцип работы SnoopWpf ManagedInjector.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2017, 00:03
Помогаю со студенческими работами здесь

Большое потребление памяти при вызове метода
Наблюдаю очень странное поведение Visual Studio 2008. В моём проекте на C# есть один метод, который содержит большое число кода (циклы,...

Entity framework: Непомерное потребление памяти
Пытаюсь в бд сделать апдейт записей (по условию), но он у меня грузит полностью оперативку (4гб). и вылетает с OutOfMemoryException...

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

Чрезмерное потребление оперативной памяти
Пытаюсь получить html страницы в фейсбуке в цикле. Для этого использую webbrowser. Получить, то получаю, но проблема в том, что цикл может...

Постоянно растущее потребление оперативной памяти процессом
Здравствуйте. Столкнулся с проблемой, не знаю как ее решить. В простое программа стабильно "ест" оперативную память. По 8кб...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru