Какова некоторая важная оптимизация, которая может быть сделана к веб-сайту уменьшить время загрузки?
Устранение / минимизация всех узких мест на стороне сервера. Для этого используйте профилировщик, такой как Xdebug или Zend Debugger, чтобы узнать, где ваше приложение выполняет дорогостоящие и медленные операции. По возможности используйте кеширование. Используйте кеш OpCode. Если это все еще недостаточно быстро, рассмотрите возможность инвестирования в больший объем ЦП, ОЗУ или твердотельных накопителей (в зависимости от того, используете ли вы ЦП, ввод-вывод или память)
Для общей оптимизации на стороне сервера / клиента см. Yahoo YSlow! Руководство пользователя .
В основном это сводится к следующему:
- Минимизация HTTP-запросов
- Использование сети доставки контента
- Добавление заголовка Expires или Cache-Control
- Компоненты Gzip
- Помещение таблиц стилей вверху
- Поместите скрипты внизу
- Избегайте выражений CSS
- Сделайте JavaScript и CSS внешними
- Уменьшите количество запросов в DNS
- Уменьшите количество запросов на JavaScript и CSS
- Избегайте перенаправления
- Удалите повторяющиеся скрипты
- Настройте ETags
- Сделать AJAX кэшируемым
- Использовать GET для запросов AJAX
- Уменьшить количество элементов DOM
- Нет 404
- Уменьшить размер файлов cookie
- Использовать домены без файлов cookie для компонентов
- Избегать фильтров
- Не масштабировать изображения в HTML
- Сделать favicon.ico маленьким и кэшируемым
Также см. Комментарии ниже, поскольку они содержат некоторую дополнительную полезную информацию для других пользователей.
Я могу придумать следующие простые варианты:
определенно хочу взглянуть на кеширование, поскольку двусторонние обращения к БД обходятся дорого. также уменьшите размер JS
Чтобы уменьшить сетевой трафик, вы можете минимизировать статические файлы, такие как CSS и Javascript, и использовать сжатие gzip для сгенерированного содержимого. Вы также можете попробовать использовать такие инструменты, как optipng, чтобы уменьшить размер изображений.
Однако первый шаг, который необходимо сделать, - это проанализировать, что отнимает все время - отправляет ли биты по сети или фактически генерирует контент для отправки. Нет смысла уменьшать ваши файлы CSS на 10%, если создание каждой HTML-страницы занимает минуту.
Первая оптимизация: решите, будет ли она медленной, а если нет, не беспокойтесь.
Это сложнее, чем кажется, потому что это не похоже на тестирование настольного приложения или игры. Игра будет медленной, если, когда вы играете в нее на целевом оборудовании, частота кадров слишком низкая. Это очень легко измерить.
Веб-сайт сложнее, потому что вы, как разработчик, вероятно, используете локальную тестовую систему с очень быстрой сетью. Даже когда вы используете свои промежуточные / системные тестовые серверы, вы, вероятно, все еще находитесь в локальной сети. Даже ваши производственные серверы, скорее всего, находятся на одном континенте.
Возможно, это не так для многих ваших пользователей.
Таким образом, существуют следующие варианты:
Последнее не рекомендуется.
HTTPS не упоминается в священной книге производительности веб-сайтов Yahoo (да, это книга, которую вы можете купить). Большинство веб-приложений, обрабатывающих важные данные, в основном или полностью работают по протоколу HTTPS, что довольно сильно меняет правила игры. Не забудьте проводить все испытания с включенной функцией.
установить плагин firebug и pagespeed следует всем директивам pagespeed (пока возможно) и будьте счастливы http: //code.google.com/intl/it/speed/page-speed/
в любом случае самая важная оптимизация, на мой взгляд, - это сокращение количества HTTP-запросов до минимума ...
{{1} }Перед тем, как приступить к какой-либо оптимизации, вы должны иметь возможность профилировать, получить FireBug для Firefox. Затем вы можете выполнить некоторый анализ, который точно скажет вам, что делать, используя YSlow . Основные вещи, которые вам следует делать, перечислены здесь .
Вот несколько "лучших практик":
Есть две стороны, о которых вы можете заботиться при оптимизации:
Примечание: мы, как разработчики, часто думаем об оптимизации серверной стороны в первую очередь... Которая в большинстве случаев составляет лишь менее 10% времени загрузки страницы!
На стороне сервера, как правило, вы захотите:
Для получения дополнительной информации, вы можете взглянуть на ответ, который я дал некоторое время назад на этот вопрос: Оптимизация веб-сайтов на базе Kohana для скорости и масштабируемости
На стороне клиента наибольший выигрыш обычно достигается за счет:
mod_deflate
от Apache. Об этом есть много интересного на Yahoo's Exceptional Performance : они выпустили много хороших практик и инструментов, таких как yslow.
Балансировка нагрузки поможет значительно сократить время загрузки.
Недавно мы сделали это на нашем веб-сайте. Здесь мы выделили девять техник, которые, казалось, оказали наибольшее влияние с наименьшими трудностями: http://mentormate.com/blog/easy-ways-speed-website-load-time/
Как уже упоминалось, вы можете использовать расширение Firefox Yslow или PageSpeed. Но вы также можете использовать GTmetrix , онлайн-сервис, сканирующий вашу страницу с помощью обоих инструментов.
Особенности, которые мне нравятся / используются:
(кстати, я не имею отношения к gtmetrix!)