@beduin01

Почему ASP.NET MVC приложения потребляют так много памяти?

Собственно есть сайт на PHP и аналогичный новостной сайт на ASP.NET MVC.
Сайт на PHP судя по диспетчеру задач ест 5MB памяти
Сайт на ASP.NET 200MB

Почему такое получается? Сайт ASP.NET нормальный и не кривой.
Кстати, почему у PHP несколько копий PHP-CGI.exe в памяти сидит?

Можно ли как-то снизить потребление памяти на сайт? Посещаемость у сайтов одинаковая.
  • Вопрос задан
  • 3304 просмотра
Пригласить эксперта
Ответы на вопрос 2
viktorvsk
@viktorvsk
Руби и питон (и, думаю, асп в том числе), один раз загружаются в "продашкн мод" и висят в памяти. То есть, все классы и константы загружены и не требуют перевычисления (в общем случае). В пхп же на каждый запрос отдельный процесс, который умирает при завершении.

Есть разные вариации, типа fastcgi phpfpm, насколько я знаю, которые стараются этот процесс задержать подольше.

У этих подходов есть свои плюсы и минусы. Не оптимизируйте особо ничего до того, как не поймете, что это узкое место.

P.S. Аналогичный сайт на PHP и ASP.net MVC не лезит ни в какие ворота, хотя бы потому, что PHP - язык, ASP.net MVC - фреймворк.
P.S.S Сказать, что два сайта одинаковые - это ничего не сказать
P.S.S.S ASP.net сайт нормальный и не кривой - это тоже пальцем в небо

Да и сказать сегодня, что 200 мб в вебе - это много, это очень тяжело.
Ответ написан
HaJIuBauKa
@HaJIuBauKa
Как работает ASP.NET сайт. Примерная картина:
Весь код бизнес логики живет в dll (это классы контроллеров, моделей - в простом случае). Загружается в память по мере необходимости. Можно сказать что по запросу. Далее этот код не выгружается из памяти, для ускорения работы сайта. Именно поэтому он занимает в памяти больше чем сайт PHP.

Как работает сайт на PHP.
Код интерпретируется налету. Весь код. Да PHP можно настроить на работу с кешем скриптов, например MemCache или нечто подобное. Но это все же немного не то. Принцип все равно будет один - запрос, интерпретация, компилирование, ответ. Именно поэтому большие фреймворки на PHP без настроенного кеша обработки скрипта работают медленно.

Мое мнение - архитектура ASP.NET работает быстрее из коробки. Это касается бизнес-логики прописанной в классах вашего приложения.

Про БД разговор отдельный.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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