GZIP или нет GZIP - PullRequest
       6

GZIP или нет GZIP

12 голосов
/ 12 октября 2010

Я продолжаю слышать, что gzip ваш сайт - это хорошая практика для ускорения доставки. Мой сайт имеет очень большую нагрузку в целом, я все еще смотрю в gzip? Я также читал о недостатках использования gzip, таких как время, необходимое для распаковки содержимого для отображения в браузере. Это правда?


UPDATE:

Этот вопрос основан на предположении, что сайт уже довольно оптимизирован.

На самом деле я уже оптимизировал его. Большая часть контента на моем сайте управляется БД, и первоначально для его загрузки потребовалось некоторое время, поэтому я написал несколько скриптов, которые запускаются по ночам, генерируют контент и сохраняют его в виде статических HTML-файлов, которые включены в самые тяжелые страницы с трафиком. Нагрузка на сервер намного ниже его емкости, поэтому, спасибо за это понимание, я буду рассматривать это более серьезно сейчас. Я думал об использовании некоторого класса PHP, который делает это динамически. Есть ли у вас какие-либо рекомендации?

Ответы [ 5 ]

12 голосов
/ 12 октября 2010

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

Обычно пользовательский интерфейс не имеет недостатков (только преимущества).

Однако, если ваш сервер уже сильно загружен, я бы, вероятно, пропустил его, поскольку он только увеличит эту нагрузку (в целом). Сначала оптимизируйте код, затем добавьте сжатие. Не пытайтесь добавить сжатие в качестве вспомогательного средства для плохо оптимизированного кода (оно не будет работать) ...

7 голосов
/ 12 октября 2010

Вы должны сжечь свой контент, потому что:

  • это легко очень легко сделать.
  • это экономит трафик (что может сэкономить деньги).
  • это сделает ваш сайт быстрее. Вы правы в том, что для распаковки gzip требуется немного времени, но все равно это будет быстрее, потому что нужно загружать меньше данных.

Вы также должны прочитать часть о gzip из лучших практик Yahoo.

1 голос
/ 07 марта 2015

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

Поскольку вы создаете статические файлы ночью, я бы посоветовал изучить zopfli сжатие статических файлов , вот php lib . В частности, потому что сжатие zopfli примерно на 5% больше, чем стандартное сжатие gzip, и его не нужно делать каждый раз (вы делаете это один раз, когда генерируется статический файл, и сохраняете его таким образом). Затем вы можете подать файл gziped по запросу пользователей, которые поддерживают gzip (вам не нужно сжатие на лету таким образом). Для пользователей, которые не поддерживают gzip, вы можете gunzip установить его на своем сервере (это уменьшает количество операций ввода-вывода, поскольку сжатый файл меньше, чем разархивированная версия, по сути, это распаковка на лету).

Вы все равно должны использовать сжатие «на лету» для динамического контента (но не zopfli, потому что он требует больше времени и средств).

Что касается затрат времени на zopfli-архивирование статического контента: если к нему обращаются более 100 раз в день, его стоит делать, поскольку он требует примерно в 100 раз больше вычислительной мощности, чем стандартный gzip. Поэтому, как только вы нажмете 101, ваш процессор будет официально выполнять меньше операций обработки, чем сжатие на лету.

1 голос
/ 12 октября 2010

Я согласен с @ircmaxell. Вы должны попытаться оптимизировать свое приложение - если база данных плохо оптимизирована или есть глупые запросы, это не сделает для вас никакой магии. Напротив, вы не можете ничего потерять - процессор будет страдать от некоторой дополнительной нагрузки, но это может серьезно снизить использование полосы пропускания. Поскольку большинство современных браузеров поддерживают сжатие GZIP, речь идет только о том, чтобы сервер спросил клиента, поддерживает ли его браузер его. Подробнее http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

Возможно, вам также следует попробовать использовать его с некоторыми модулями кеширования, как предлагалось @Andrew Sledge. Попробуйте APC :-) http://www.php.net/manual/en/intro.apc.php. Также попробуйте сжать CSS-файлы, изображения или JS-файлы. Раньше я статически генерировал всю сеть, а затем обновлял только измененные страницы - это определенно зависит от частоты обновления.

0 голосов
/ 27 апреля 2016

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

  1. сжатие GZip
  2. Сократить JavaScript, CSS и HTML
  3. Уменьшить запрос путем объединения файлов

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

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