Тюнинг производительности для ASP.NET. Часть 1

суббота, 10 июля 2010, Евгений Жарков

Untitled-1В первой части уловок с производительностью для ASP.NET и IIS7 мы рассмотрим некоторые простые, но тем не менее мощные возможности web.config файла. Используя некоторые трюки мы увеличим производительность любого нового или существующего веб-сайта, не изменяя ничего, кроме web.config файла.

Следующие XML-сниппеты должен быть помещены в секцию в web.config.

HTTP-сжатие

Вы всегда можете настроить сжатие по HTTP в ASP.NET, используя сторонние библиотеки или собственные. С IIS7 вы можете отбросит все это и использовать встроенный компрессор, доступный с web.config. Добавьте следующую строчку кода для включения HTTP-компрессии:

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

doDynamicCompression

Установите данный атрибут в true и вы получите сжатие для таких динамически созданных данных, как страницы, представления, обработчики. Нет никакой причины, которая бы запрещала сделать это.

doStaticCompression

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

dynamicCompressionBeforeCache

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

Заметка

По умолчанию, только текстовые типы содержимого подлежат сжатию. Это означает, что если вы посылаете application/x-javascript, как тип содержимого, то вам следует изменить его на text/javascript. Если вы используете собственные модули на сайтах, тогда возможно у вас будут конфликты с IIS7 компрессией.

Ресурсы

Кеширование статических файлов

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

Добавив данный сниппет в ваш web.config, все статические файлы будут кэшированы браузером на год:


    

Данные настройки устанавливают срок годности файлов на один год вперед. Делается это, указывая в HTTP-заголовке инструкции для браузера добавить файл в его внутренний кэш. Если вы нажмете F5 или Ctrl+F5, браузер запросит файлы вне зависимости от их даты истечения.

Главной проблемой кэширования на клиентской стороне – это изменение статических файлов до истечения срока годности. Посетитель со старой версией в кэше не увидит новых файлов, пока не очистит кэш браузера, нажав F5. Поэтому данные настройки нужно использовать с осторожностью и, думаю, следует сократить срок годности. Во второй части я рассмотрю данную проблему и предложу простой способ для её решения.

Заметка

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

Ресурсы

Компании из статьи


Microsoft Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии