Подсказки для того, чтобы сделать веб-приложение asp.net запущенным быстрее

Что все могут мы делать для создания веб-приложения asp.net запущенным быстрее, чем прежде. Что вся тонкая настройка требуются для него?

5
задан HotTester 23 January 2010 в 06:46
поделиться

5 ответов

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


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

Например, вы говорите, что среднее время отклика составляет 4-5 секунд. Это долгое время. Что происходит за эти 5 секунд? Все это ждет базу данных? Вы можете попробовать запустить свои запросы вне приложения, чтобы посмотреть, сколько времени они займут. Вы можете запустить профилировщик SQL Server для записи транзакций в базе данных за определенный период времени, а затем запустить результат с помощью Мастера настройки базы данных. Он может иметь некоторые рекомендации по изменению индексов базы данных.

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

Кроме того, вам нужно посмотреть на производительность вашего сервера. Вы используете слишком много процессора? Слишком много памяти? Вы тратите время на обрезку страниц, выбивая страницы рабочего процесса ASP.NET из памяти, чтобы принести страницы SQL Server, только для того, чтобы эти страницы были выбиты, когда запрос к базе данных закончен и рабочий процесс должен быть запущен снова?

Разбейте проблему на мелкие кусочки, затем исправьте их.

.
6
ответ дан 18 December 2019 в 10:45
поделиться

Кэширование -- как страницы, так и данных -- и оптимизация доступа к данным, вероятно, являются ключевыми элементами повышения производительности без изменения аппаратного обеспечения. Кроме того, вы можете обратить внимание на кластеризацию/балансировку нагрузки, чтобы сделать доступными дополнительные ресурсы.

.
5
ответ дан 18 December 2019 в 10:45
поделиться

Это большая тема, но главное, что приходит на ум:

  • удержать размер видового состояния вниз
  • меньше постбэков. Используйте javascript, чтобы избежать их, когда это возможно. Элементы управления валидацией являются хорошим примером того, как это может работать.
  • имеют хорошую стратегию кэширования

Также есть вещи, не относящиеся кasp.net, например:

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

Вам также может быть полезен этот вопрос:
https://stackoverflow. com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site

2
ответ дан 18 December 2019 в 10:45
поделиться

Я согласен с кэшированием. ASP.NET имеет отличные встроенные механизмы кэширования.

Я бы также порекомендовал профилировать приложение, как это уже было рекомендовано выше.

Вот ссылка на статью о некоторых бесплатных .NET профилировщиках, а также платных.

http://www.devcurry.com/2009/11/free-net-profilers-and-some-paid-ones.html

редактирование: вы, возможно, захотите посмотреть и на этот поток StackOverflow

https://stackoverflow.com/questions/308816/any-good-free-net-profiler

Надеюсь, это поможет.

.
0
ответ дан 18 December 2019 в 10:45
поделиться

Настройка производительности для ASP.NET - большая тема. На самом деле, пытаясь дать исчерпывающий ответ на Ваш вопрос, я написал книгу об этом: Сверхбыстрая ASP.NET: Построение ультра-быстрых и ультра-масштабируемых веб-сайтов с ASP.NET и SQL Server.

С высокого уровня:

  • Сведение к минимуму количество круглых ударов, как между клиентом и сервером, так и между сервером и БД
  • Сосредоточение внимания на воспринимаемой производительности
  • Сведение к минимуму количество блокирующих вызовов
  • Кэш на всех уровнях
  • Оптимизация управления дисковыми входами/выходами
  • Оптимизация загрузки и порядка отображения объектов браузера
  • Избегайте полной перезагрузки страницы с помощью Ajax, Silverlight и JavaScript
  • Избегайте синхронной записи БД
  • Используйте мониторинг и инструменты
  • Поймите, как SQL Server управляет памятью
  • Эффективное использование разметки на уровне данных

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

3
ответ дан 18 December 2019 в 10:45
поделиться
Другие вопросы по тегам:

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