Действительно ли возможно отследить использование памяти в приложении C#, не используя профилировщика?

Я думаю, что лучшее, что вы можете сделать, - это наблюдать значение ключа NSWorkspace.sharedWorkspace со временем [110] и самостоятельно поддерживать порядок в списке. Конечно, это работает только для приложений, которые были сделаны первыми с момента запуска вашего приложения. Другие приложения будут оставаться неупорядоченными.

6
задан GEOCHET 6 March 2009 в 23:17
поделиться

3 ответа

Вы могли бы хотеть запуститься со Сборщика "мусора". MSDN имеет некоторых участников, перечисленных здесь, который может показать Вам, как сделать, несколько вещей, как получают общий объем памяти, это думает, выделяется, сколько раз собрал GC. Что-либо более усовершенствованное, чем это, как получение количества объектов Вашего загруженного блока и необходимо будет, вероятно, использовать профилировщика или записать что-то сами.

3
ответ дан 17 December 2019 в 04:52
поделиться

Счетчики производительности Памяти.NET дадут Вам совокупную информацию, но не включают счетчики объекта. Для этого Вам будет нужен профилировщик.

1
ответ дан 17 December 2019 в 04:52
поделиться

Используя попытку WMI:

Получить использование процесса (W2K3/2K8):

"SELECT IDProcess, PercentPrivilegedTime, PercentProcessorTime, PercentUserTime FROM Win32_PerfFormattedData_PerfProc_Process where Name='process_name.exe'"

Для идентификации сайта используют это:

"SELECT ProcessId, CommandLine, WorkingSetSize, ThreadCount, PrivatePageCount, PageFileUsage, PageFaults, HandleCount, CreationDate, Caption FROM Win32_Process where Caption='process_name.exe'"

Используйте этот инструмент для испытуемого WQL

Или используйте инструмент PerfMon.

Для получения дополнительной информации о счетчиках см. Windows System Resource Manager Accounting, в конце документа.

Удачи.

1
ответ дан 17 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: