ASP.NET и частные байты - что это на самом деле означает? - PullRequest
1 голос
/ 17 января 2011

В последнее время меня очень беспокоили проблемы с памятью в ASP.NET.

Я читал довольно много статей, создал одну ветку и использовал профилировщик для оптимизации своего приложения. Я также только что прочитал статью о разнице в приватных байтах, виртуальных байтах и ​​рабочем наборе .

Итак, я понимаю, что частные байты - плохой способ определения фактического использования памяти. Однако я собираюсь немного попробовать, поскольку хочу глубже понять использование памяти моего приложения.

Прямо сейчас он постоянно использует ~ 55-60 МБ частных байтов. Означает ли это, что если я хочу одновременно запускать 2000 пользователей на моем сайте, мне нужно: 60 МБ * 2000 = 120 ГБ ОЗУ?

Я искренне надеюсь, что кто-то может прийти и сказать мне, что я совершенно не прав, и я сошел с ума! :)

Я также протестировал довольно простой сайт с очень ограниченной функциональностью, который использовал ~ 40-45 МБ частных байтов, что также выглядело довольно много.

Ответы [ 2 ]

1 голос
/ 17 января 2011

Нет;использование памяти не масштабируется линейно с количеством пользователей.

Большая часть памяти (или должна быть) распределена между всеми пользователями (особенно байт-кодом);объем памяти, используемый каждым дополнительным пользователем, должен быть довольно небольшим.

Кроме того, даже если у вас 2000 пользователей, вы не будете получать 2000 запросов одновременно.
Единственные постоянные накладные расходы на пользователя -состояние сеанса для каждого активного пользователя.

0 голосов
/ 17 января 2011

ASP.net имеет определенную нагрузку, как любое приложение на компьютере. Эта базовая сумма будет составлять большую часть используемой памяти.

Что касается количества оперативной памяти, требуемой для сеанса / пользователя и т. Д., Что крайне предвзято для дизайна вашего приложения.

...