Как рассчитать / сохранить использование памяти приложения .NET на терминальных серверах? - PullRequest
1 голос
/ 24 ноября 2008

Я делаю несколько приложений на C # на сервере Citrix / Terminal.

Как измерить фактическое использование памяти за сеанс? Что я могу сделать, чтобы уменьшить общее использование памяти?

Мы все еще работаем над .NET 1.1. Есть ли разница, если мы обновим нашу среду выполнения .NET?

Ответы [ 2 ]

1 голос
/ 25 ноября 2008

Очень сложно получить показатели по фактическому использованию памяти в .NET. Ближайшее приближение, которое вы можете получить, зависит от объекта, вызывая Marshal.SizeOf (). Насколько я понимаю, этот метод заключается в том, что он по существу измеряет размер сериализованной версии объекта, и объем памяти в памяти может быть близок к этому, но он не точен. Но это хорошая оценка.

Вы также можете исследовать API-интерфейсы SMS в .NET. Они предоставляют способы запрашивать различную статистику памяти из операционной системы о вашем процессе (или других процессах). Это та же библиотека, что используется "perfmon". Вы можете использовать это для программной проверки вашего процесса.

Кроме того, вы захотите инвестировать в хороший инструмент профилирования для .NET. Я оценил ANTS и dotTrace. Они оба очень хороши. Я предпочел dotTrace за его простоту. Большинство профилировщиков имеют очень неинтуитивные интерфейсы. Это то, чего я только что ожидал. dotTrace на самом деле довольно хорош, по этим стандартам. ANTS Я думаю, что, вероятно, более продвинутый (не уверен, только мое мнение из краткого eval, который я сделал на них обоих).

0 голосов
/ 24 ноября 2008

Вот статья от MSDN по измерению производительности приложений. Это включает в себя выполнение измерений на использование памяти.

Я не думаю, что обновление .NET Runtime окажет существенное влияние на приложение как таковое, вам, вероятно, будет лучше оптимизировать ваше приложение другими способами. Попробуйте распоряжаться ресурсами, когда они вам не нужны.

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