2015-04-23 6 views
0

Как повысить производительность веб-приложения ASP.NET MVC?Как повысить производительность веб-приложения ASP.NET MVC?

Какими являются поля, в которых я должен заботиться?

В моем веб-приложение содержит базы данных соединений, API и Image PARSING т.д.

+3

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

+0

Можете ли вы предложить мне любые инструменты для тестирования производительности **. Я использую инструмент Google (https://developers.google.com/speed/pagespeed/insights/), Это хорошо для тестирования производительности? –

+0

Ну, есть ANTs Profiler, я думаю, что это фантастика для профилирования .NET-приложений. Используйте 30-дневную пробную версию для этого и посмотрите, дает ли она что-либо. С точки зрения SQL просто используйте SQL Profiler для отслеживания основных процессов, затем вы можете запустить это через консультанта по настройке, чтобы узнать, что он рекомендует. Затем вы можете автоматизировать некоторые тесты нагрузки с помощью чего-то вроде WebLoadUI или чего-то подобного, что покажет вам, что сначала сбрасывается под нагрузкой. – mattytommo

ответ

3

Найти узкое место и помнить оптимизации общего пользования случае вместо того, чтобы что-то, что может быть оптимизирован, но ISN Еще не используется. Если вы не знаете Amdahl's law, вам стоит взглянуть на него. Задайте задачу в 1000 раз быстрее, проверьте петли в циклах и/или если вы получите больше данных, чем необходимо. Кэширование также может значительно повысить производительность. Хороший book об этом называется «Создание более быстрых сайтов» и «Еще более быстрые веб-сайты», в котором вам рассказывается много о том, как оптимизировать для Интернета.

1

Вот несколько советов, которые помогут улучшить производительность вашего приложения ASP.Net.

VIEWSTATE

Посмотреть состояние механизм удивительно, что показывает детали записи, размещенной на сервере. Он загружается каждый раз ifrom сервера. Этот параметр выглядит как дополнительная функция для конечных пользователей. Это нужно загрузить с сервера, и он добавляет больше размера на страницу, но это повлияет на производительность, когда на странице будет много элементов управления, таких как регистрация пользователей. Таким образом, если нет необходимости в этом, он может быть отключен.

EnableViewState = "false" необходимо предоставить на основе требований. Он может быть задан при настройках уровня управления, страницы и конфигурации.

Избегайте сессии и переменные приложения

Сессия представляет собой механизм хранения данных, которое помогает разработчикам принимать значения по страницам. Он будет сохранен на основе выбранного состояния сеанса. По умолчанию он будет сохранен в Inproc. Эти настройки по умолчанию используют IIS. Когда эта переменная сеанса используется на странице, к которой обращаются многие числа, она будет занимать больше памяти и предоставляет дополнительные накладные расходы для IIS. Это замедлит работу.

Этого можно избежать для большинства сценариев. Если вы хотите отправить информацию через страницы, мы можем использовать строку Cross Post-back, Query с шифрованием. Если вы хотите сохранить информацию на странице, то наилучшим способом является кеширование объекта.

Использование Кэширование

ASP.Net имеет весьма существенную особенность механизма кэширования. Это дает большую производительность и позволяет избежать процесса клиент/сервер. В ASP.Net существует три типа кэширования.

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

Эффективно использовать CSS и файлы сценариев

Если у вас есть большие CSS-файлы, которые используются для всего сайта на нескольких страницах, то на основании требований, он может быть разделен и хранится под разными именами.Это минимизирует время загрузки страниц.

Изображения размеры

перестарайтесь изображений в веб-сайта влияет на производительность веб-страницы. Для загрузки изображений требуется время, особенно при коммутируемых соединениях. Вместо использования фоновых изображений это можно сделать по цветам CSS или использовать легкие изображения для повторения на всех страницах.

CSS на основе макета

Весь дизайн веб-страницы управляется с помощью CSS, используя теги Div вместо макета таблицы. Это значительно увеличивает производительность загрузки страницы. Это поможет обеспечить соблюдение того же стандарта на веб-сайте. Это облегчит будущие изменения. Когда мы используем макет вложенной таблицы, для рендеринга требуется больше времени.

Избегайте кругорейсы

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

Validate с помощью JavaScript

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

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

Очистить Garbage Collection

Обычно .Net приложения используют Garbage Collection, чтобы очистить неиспользуемые ресурсы из памяти. Но для очистки неиспользуемых объектов из памяти требуется время.

Существует множество способов очистки неиспользуемых ресурсов. Но не все методы рекомендуются. Но мы можем использовать метод dispose в блоке finally для очистки ресурсов. Кроме того, нам нужно закрыть соединение. Он немедленно освободит ресурсы и предоставит пространство в памяти.

Избегайте насыпной хранения данных на стороне клиента

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

Внедрение Dynamic Paging

Когда мы загружаем большое количество записей в контрольных данных сервера, как GridView, DataList и ListView это потребуется время для загрузки. Таким образом, мы можем показывать только текущие данные страницы через динамический пейджинг.

Использование хранимая процедура

Попробуйте использовать хранимые процедуры. Они повысят производительность веб-страниц. Поскольку он хранится в качестве объекта с соблюдением в базе данных и использует планы выполнения запросов. Если вы передадите запрос, он сделает сетевой запрос. В хранимой процедуре одна строка будет передана на бэкэнд.

Использование XML и XSLT

XML и XSLT ускорит производительность страниц. Если процесс не является более сложным, то он может быть реализован в XSLT.

Использование Dataset

набора данных не легкий по сравнению с DataReader. Но у него есть преимущества несвязанной архитектуры. DataSet будет потреблять значительный объем памяти. Даже если у него может быть более одного дня. Если вы хотите выполнить много операций при загрузке самой страницы, тогда лучше было бы пойти с DataSet. После загрузки данных в DataSet он также может быть использован позже.

Используйте String Builder вместо строки

Когда мы добавляем строки, как почта форматирования на стороне сервера, то мы можем использовать StringBuilder. Если вы используете строку для конкатенации, то каждый раз она создает новое хранилище для хранения этой строки. Он занимает больше места в памяти. Но если мы используем класс StringBuilder в C#, тогда он потребляет больше места памяти, чем String.

Использование Server.Transfer

Если вы хотите перенести страницу в пределах текущего сервера, то мы можем использовать метод Server.Transfer. Это позволяет избежать переходов между браузером и сервером. Но он не будет обновлять историю браузера.

Используйте Темы

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

Рассмотрите пример при нажатии на отправку, он должен отправить письмо 5 членам lakhs, но нет необходимости ждать завершения всех процессов. Просто вызовите процесс отправки почты в качестве фонового потока, затем приступайте к дальнейшей обработке, потому что отправка почты не зависит ни от одного из других процессов.

-> Вы также можете использовать «ReSharper» с визуальной студией для лучшей настройки. (https://www.jetbrains.com/resharper/)

+0

Некоторые из них на самом деле связаны с WebForms, это MVC (viewstate, dynamic paging и т. Д.), – mattytommo

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