Моя хостинговая компания накладывает ограничение на пул приложений в 100 Мб (IIS 7.5).
Как точно определить использование памяти моим приложением ASP.NET?
Для созданиякакая-то базовая строка Я создал пустое приложение ASP.NET MVC 3 с одним действием контроллера, возвращая строковый результат.
Профилирование этого приложения с помощью ANTS дало следующие результаты:
Generation 1 - 286.2KB
Generation 2 - 795.4KB
Large Object Heap - 75.63KB
Unused memory allocated to .NET - 1.323MB
Unmanaged - 26.78MB
Меня беспокоит то, что если ограничения пула приложений основаны на частных байтах, то пустое приложение ASP.NET MVC использует 33 МБ ресурса пула.Поэтому мое MVC-приложение, которое на самом деле что-то делает (использует 93 МБ), легко превысит «предел».
Если, однако, я вызываю GC.GetTotalMemory
, то результат равен 8 МБ, что звучит гораздо более приемлемо.
У меня не было абсолютно никаких успехов в поиске каких-либо тестов для сравнения, но если пустое веб-приложение MVC действительно использует 33 МБ ресурса (это звучит чрезмерно), то ограничения, налагаемые моим хостом, кажутся совершенно нереальными.
Большое спасибо, Бен