2010-07-01 6 views
1

У меня есть пользовательский элемент управления на моей странице, который находится внутри панели обновления. Используя пользовательский элемент управления, я показываю сообщение для пользователя. Мне нужно изменить сообщение каждые 5 минут. Сообщение сохраняется в базе данных и пользовательский элемент управления автоматически извлекает сообщение из базы данных каждые 5 минут. Моя проблема в том, что более 50 пользователей получают доступ к одной и той же странице, затем каждые 5 минут запрос отправляется от каждого клиента автоматически на сервер, что снижает производительность сервера. Так может кто-нибудь помочь мне решить эту проблему производительности.ASP.Net увеличивает производительность сервера?

ответ

4

Запросы на сервер всегда будут использовать ресурсы. Это факт жизни.

Вы не говорите, какой сервер это имеет проблемы с производительностью, но если сообщение в базе данных является статическим, то почему бы не загрузить его в кэш на сервере приложений, чтобы каждый клиент не делал запрос в базу данных?

+0

+1 за предложение кэширования, так что мне ответили 2 ответа. –

+0

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

+0

Кэш не обязательно должен быть постоянным. Вы можете заставить кэш недействительными свои данные каждые 5 минут, чтобы следующая выборка заправляла кеш новыми данными. Я согласен с тем, что еще было сказано в отношении профилирования вашего приложения, поскольку описанный вами сценарий настолько тривиален, что вы правильно видите, что на каком-либо сервере вы не видите никакого влияния на кодировку. – starskythehutch

3

Вам необходимо до profile your application, чтобы найти узкие места в производительности.

Seriously! Все остальное просто угадывание.

Несмотря на то, что он не возглавил список, я рекомендую EQATEC Profiler.


Update

Просто думал, что я хотел бы отметить, что 50 одновременно работающих пользователей не должно быть никаких проблем для ASP.NET.

MySpace runs on ASP.NET с 2,3 миллионами одновременно работающих пользователей и обрабатывает 1,5 миллиарда просмотров страниц каждый день.

+0

Действительно, измерение приложения с помощью одного из упомянутых инструментов также помогает в решении проблем с производительностью. – XIII

+0

Я думаю, что должна быть функция переполнения стека, чтобы отметить несколько ответов правильно! Может быть, я поеду в meta :) – starskythehutch

+0

Его онлайн-трансляция потокового видео на веб-сайте. Когда в прямом эфире происходит, мне нужно менять сообщение каждые 5 минут, чтобы он отправил запрос на блок, который увеличит нагрузку, пока видео потоковая передача, если более 50 пользователей обращаются к одной и той же странице .... так что вы можете сказать некоторые параметры, чтобы уменьшить запрос сервера ???? –

5

Использовать объект Cache в UI-уровне для загрузки в разных текстах. Загружайте его только при первом запросе.

есть пользовательский элемент управления в моей странице, которая находится внутри панели обновления

Попытки избавиться от UpdatePanel, как он всегда будет посылать туда и обратно полную ViewState страницы. Используйте ajax, скрипт только в сочетании с PageMethod или конечной точкой службы (.asmx или wcf).

Также измерьте, где все идет медленно. Мне нравится использовать инструменты, такие как YSlow и Sql Profiler для измерения. ASP.NET также имеет возможность отслеживания, которое вы можете включить/отключить в web.config.

+1

+1 за предложение легкого ajax –

+0

Спасибо за вашу идею ... может у вас объяснить мне, как я могу использовать ajax для повышения производительности ... или вы можете предоставить небольшой образец, используя метод ajax, связанный с этой проблемой ??? ??? –

+1

@ user311077: http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/ показывает хорошее введение. – XIII

Смежные вопросы