Я занимаюсь исследованием использования памяти веб-приложениями ASP.NET MVC.
Для моих исследований я использую Windows Server 2008 R2 с IIS 6.1 и SQL Server 2008 R2 в Virtualbox 4.1.
Я решил использовать виртуальный сервер, потому что его нельзя было протестировать на живом сервере. Для профилирования я использую ANTS Memory Profiler 7.0.
Сначала мне было интересно, почему даже самые простые веб-сайты уже используют до ~ 30 - 40 МБ.
В качестве примера я использую веб-сайт «My MVC Application», который является учебным веб-сайтом в Visual Studio, но та же концепция применима ко всем веб-сайтам, которые я профилировал. Когда я запускаю профилировщик муравьев на сайте в состоянии ожидания, я получаю следующую сводку:
Generation 1: 26kb<br>
Generation 2: 2100kb<br>
Large object heap: 240kb<br>
Unused memory allocated to .NET: 3265kb<br>
Unmanaged: 20890kb
Теперь мне интересно, какая информация находится в неуправляемом блоке? Могу ли я узнать и уменьшить размер этого блока?
Кроме того, существует 7000 строковых объектов, которые составляют в общей сложности ~ 600 Кбайт в режиме ожидания. Откуда все эти строки? Я надеюсь, что вы можете дать мне некоторую информацию по этим вопросам.