2010-03-01 3 views

ответ

21

Удалите/скройте все узкие места на стороне сервера. Для этого используйте профилировщик, например Xdebug или Zend Debugger, чтобы узнать, где ваше приложение выполняет дорогостоящие и медленные операции. Реализуйте кеширование, где это возможно. Используйте кеш OpCode. Если это еще не достаточно быстро, подумайте о том, чтобы инвестировать в большее количество CPU или RAM или SSD (в зависимости от того, являетесь ли вы процессором, IO или памятью)

Для общих оптимизаций на стороне сервера/клиента см. Yahoo YSlow! User Guide.

Это в основном подводит его к:

  1. Минимизация HTTP запросов
  2. Использовать сеть доставки контента
  3. Добавить Истекает или заголовок Cache-Control
  4. Gzip Компоненты
  5. Поместите StyleSheets в начало
  6. Положите скрипты в нижней части
  7. Избегайте CSS выражений
  8. Сделать JavaScript и CSS Внешний
  9. Сокращение DNS-запросы
  10. Минимизировать JavaScript и CSS
  11. Избегайте Перенаправление
  12. Удалить дубликаты Сценарии
  13. Настройка ETags
  14. сделать AJAX Cacheable
  15. Использование GET для запросов AJAX
  16. Уменьшайте Количество DOM элементов
  17. Нет
  18. Ошибки 404
  19. Уменьшить размер Cookie
  20. Использование Cookie-Free Domains для компонентов
  21. Избегайте Фильтры
  22. Не масштабировать изображения в HTML
  23. сделать favicon.ico Маленький и Cacheable

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

+3

Также проверьте Google»PageSpeed ​​HTTP://code.google.com/speed/page-speed/ - хорошая альтернатива/дополнение к YSlow и также аддон Firebug. Он ловит некоторые вещи, которые YSlow не делает, и наоборот. –

+1

Еще одна вещь: использовать сеансы в памяти, если вы контролируете достаточное количество серверов для установки дополнительных плагинов и достаточного количества оперативной памяти. Плагин memcache включает обработчик сеанса. http://php.net/memcache – Powerlord

+1

Хороший ответ. Все это объяснено более подробно на этой (отличной) статье Yahoo: http://developer.yahoo.com/performance/rules.html –

3

Прежде чем приступать к какой-либо оптимизации, сначала вам нужно иметь профиль, получить FireBug для Firefox. Затем вы можете запустить некоторый анализ, который точно скажет вам, что делать, используя YSlow. Основные вещи, которые вы должны сделать, перечислены here.

2

Вот несколько "наилучшей практики" вещи:

  • Кэширование CSS, JavaScript, изображения и т.д.
  • Минимизация Javascript файлов.
  • gzip содержание.
  • Поместите ссылки на файлы JavaScript, код JavaScript и ссылки на файлы CSS внизу вашей страницы.
  • Загрузите только то, что необходимо.
  • Для существующего веб-сайта перед тем, как вы это сделаете, определите, где ваши узкие места с такими инструментами, как Firebug, и как кто-то еще упомянул YSlow (я настоятельно рекомендую этот инструмент).
2

Есть две стороны вы можете заботиться о, при оптимизации:

  • на сторону сервера: важно то, генерирование вывода быстрее
  • Клиент сторона: то, что имеет значение получает все, что должно будет отображаться быстрее.

Примечание: мы, как разработчики, часто думаем об оптимизации серверной стороны ... В большинстве случаев это составляет менее 10% от времени загрузки страницы!


На стороне сервера, вы вообще хотите:

  • профиль, чтобы определить, что долго
  • оптимизации запросов SQL, и уменьшить их количество
  • использование кэширования

Для получения дополнительной информации вы можете взглянуть на ответ, который я дал некоторое время назад на этот вопрос: Optimizing Kohana-based Websites for Speed and Scalability


На стороне клиента, самые большие выгоды, как правило, достигается за счет:

  • Уменьшение количества HTTP запросов - самый простой способ в том, чтобы уменьшить количество JS/CSS/файлы изображений, с помощью объединение нескольких файлов в один
  • Сжатие CSS/JS/HTML, используя, например, Apache mod_deflate.

О том, что есть много хороших вещей на Yahoo's Exceptional Performance: они выпустили много good pratices и инструментов, таких как yslow.

2

простые варианты я могу думать о том, являются:

  1. Gzip (X) HTML, поэтому сжатый файл должен прибыть более быстро к пользователю
  2. преуменьшать СМЧ
  3. преуменьшать, ИС
  4. использовать кеширование, где возможно
  5. использовать сеть доставки контента
  6. используйте инструмент, например yslow, чтобы определить узкие места и дальнейшие предложения
+0

@bn, действительно, отредактирован для исправления. Спасибо =] –

2

определенно хотите посмотреть на кеширование, поскольку круглые поездки в DB дороги. также, minify JS

0

Чтобы уменьшить сетевой трафик, вы можете минимизировать статические файлы, такие как CSS и Javascript, и использовать сжатие gzip для сгенерированного контента. Вы также можете попробовать использовать такие инструменты, как optipng, чтобы уменьшить размер изображений.

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

-3

Балансировка нагрузки поможет уменьшить время загрузки.

+2

Нет, это не так, почти во всех случаях. – MarkR

1

Первая оптимизация: решить, если она медленная, а если нет, не беспокойтесь.

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

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

То же самое возможно не так для многих пользователей.

Поэтому варианты, которые существуют являются:

  • Узнай, спрашивая пользователь, найти ли они, что это будет медленно
  • Имитировать высокую среду задержки и проверить это самостоятельно (или вашу команду QA)
  • Guesswork

Последнее не рекомендуется.

Вариант, в котором книга исполнения хостинга «Сайлер Сайта» (да, это книга, которую вы можете купить) не упоминает много, это HTTPS. Большинство веб-приложений, которые обрабатывают важные данные, работают в основном или полностью по HTTPS, что значительно изменяет правила игры. Не забудьте сделать все тестирование с включенным.

2

установить поджигатель и PageSpeed ​​плагину не следует всем директивам PageSpeed ​​(пока это возможно) и быть счастливым http://code.google.com/intl/it/speed/page-speed/

в любом случае наиболее оптимизации в моем Важном опыте, чтобы уменьшить количество HTTP запросов к минимуму ...

0

Не используйте пробелы в коде.

1

Как уже упоминалось, вы можете использовать YSlow или PageSpeed ​​светлячок расширение. Но вы также можете использовать GTmetrix, онлайн-сервис, сканирующий вашу страницу с помощью обоих инструментов.

Особенности Мне нравится/использование:

  • мягкой, чистой и полезной presention
  • сравнение с другой страницы. Очень интересно посмотреть, где ваши друзья/конкуренты.

(кстати, я не связан с gtmetrix!)

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