.NET MVC вопросы профилирования памяти - PullRequest
1 голос
/ 11 августа 2011

Я занимаюсь исследованием использования памяти веб-приложениями 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 Кбайт в режиме ожидания. Откуда все эти строки? Я надеюсь, что вы можете дать мне некоторую информацию по этим вопросам.

1 Ответ

0 голосов
/ 22 августа 2011

Если вы используете ANTS Memory Profiler 7, используйте Классификатор экземпляров , например, для строковых экземпляров, чтобы разделить их и определить, откуда они берутся. Это особенно полезно в подобных ситуациях, когда у вас есть тысячи экземпляров, и вы хотите понять, откуда они берутся. Строки очень часто нуждаются в таком анализе.

...