Статьи

23 средства разработки для повышения производительности сайта

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

Инструменты производительности на стороне клиента

1. Проверьте вашу мобильную скорость с Google

Google Test My Site — это онлайн-инструмент, предлагаемый Google и работающий на основе популярного инструмента производительности веб-сайтов WebPageTest.org .

Google Test My Site

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

Google Test My Site: время загрузки

Инструмент дает вам время загрузки вашего сайта (или индекс скорости), рассчитанное с помощью браузера Chrome на устройстве Moto G4 в сети 3G. Это также дает вам примерный процент посетителей, потерянных из-за времени загрузки. Среди прочего это также:

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

2. SiteSpeed.io

SiteSpeed.io — это инструмент с открытым исходным кодом или набор инструментов, который может помочь вам измерить производительность вашего сайта и улучшить его.

  • Тренер : дает вам советы по производительности и исправления для вашего сайта на основе передового опыта.
  • Browsertime : собирает метрики и файлы HAR из вашего браузера.
  • Chrome-HAR : помогает сравнивать файлы HAR.
  • PageXray : извлекает различные метрики (из файлов HAR), такие как размер, количество запросов и т. Д.

Вы можете установить эти инструменты, используя npm:

npm install sitespeed.io -g sitespeed.io --help 

Или Докер:

 docker run --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io https://www.sitespeed.io/ --video --speedIndex 

3. Маяк от Google

Lighthouse — это инструмент с открытым исходным кодом для проведения аудита для улучшения качества веб-страницы. Он интегрирован в DevTools Chrome, а также может быть установлен как расширение Chrome или инструмент на основе CLI. Это незаменимый инструмент для измерения, отладки и повышения производительности современных клиентских приложений (особенно PWA).

Маяк производительности

Вы можете найти расширение в Интернет-магазине Chrome .

Или вы можете установить Lighthouse от npm в вашей системе с помощью:

 npm install -g lighthouse 

Затем запустите его с:

 lighthouse <url> 

Вы можете использовать Lighthouse программно для создания собственного инструмента для повышения производительности или для непрерывной интеграции.

Обязательно проверьте эти инструменты на основе Lighthouse:

  • webpack-lighthouse-plugin : плагин Lighthouse для Webpack
  • Treo : Маяк как услуга с персональным бесплатным планом.
  • calibreapp : платный сервис, основанный на Lighthouse, который помогает вам отслеживать, понимать и улучшать показатели производительности с использованием реальных экземпляров Google Chrome.
  • Lighthouse -Cron : модуль, который может помочь вам отслеживать ваши результаты Lighthouse и метрики сверхурочно.

Мы подробно рассмотрим Lighthouse в нашем посте за месяц PWA .

4. Lightcrawler

Вы можете использовать Lightcrawler для сканирования вашего сайта, а затем запустить каждую страницу, найденную через Lighthouse.

Начните с установки инструмента через npm:

 npm install --save-dev lightcrawler 

Затем запустите его из терминала, указав целевой URL и файл конфигурации JSON:

 lightcrawler --url <url> --config lightcrawler-config.json 

Файл конфигурации может быть что-то вроде:

 { "extends": "lighthouse:default", "settings": { "crawler": { "maxDepth": 2, "maxChromeInstances": 5 }, "onlyCategories": [ "Performance", ], "onlyAudits": [ "accesskeys", "time-to-interactive", "user-timings" ] } } Конфигурация { "extends": "lighthouse:default", "settings": { "crawler": { "maxDepth": 2, "maxChromeInstances": 5 }, "onlyCategories": [ "Performance", ], "onlyAudits": [ "accesskeys", "time-to-interactive", "user-timings" ] } } 

5. YSlow

YSlow — это букмарклет JavaScript, который можно добавить в браузер и вызвать на любой посещенной веб-странице. Этот инструмент анализирует веб-страницы и помогает вам обнаружить причины медлительности на основе правил Yahoo для высокопроизводительных веб-сайтов.

Вы можете установить YSlow, перетащив букмарклет на панель закладок вашего браузера. Найти больше информации здесь .

6. GTmetrix

GTmetrix — это онлайн-инструмент, который дает вам представление о производительности вашего веб-сайта (время полной загрузки, общий размер страницы, количество запросов и т. Д.), А также практические рекомендации по его оптимизации.

Отчет GTmetrix

7. Производительность страницы

Производительность страницы

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

8. Проект AMP

Проект AMP (Accelerated Mobile Pages) — это проект с открытым исходным кодом, цель которого — сделать Интернет быстрее. Проект AMP позволяет разработчикам создавать быстрые, высокопроизводительные и удобные веб-сайты для пользователей на всех платформах (браузеры настольных компьютеров и мобильные устройства).

Проект AMP

Проект AMP состоит из трех основных компонентов:

  • AMP HTML: это HTML, но с некоторыми ограничениями, чтобы гарантировать надежную работу.
  • AMP JS: библиотека JavaScript, которая заботится о рендеринге AMP HTML.
  • AMP Cache: сеть доставки контента для кэширования и доставки действительных страниц AMP. Вы можете использовать такие инструменты, как AMP Validator или amphtml-validator, чтобы проверить, являются ли ваши страницы действительными страницами AMP.

Как только вы добавите разметку AMP на свои страницы, Google автоматически обнаружит их и кэширует для доставки через AMP CDN. Отсюда вы можете узнать, как создать свою первую страницу AMP.

Инструменты производительности на уровне кода

9. Dust Me Селекторы

Dust Me Селекторы

Dust Me Selectors — это расширение для браузера, которое может помочь вам обнаружить и удалить неиспользуемые селекторы CSS на ваших веб-страницах. Он сканирует все таблицы стилей, а затем упорядочивает найденные селекторы в используемые и неиспользуемые селекторы, которые сообщают вам, какой именно CSS используется или не используется на отсканированной странице.

10. Пентхаус

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

Вы можете установить Пентхаус с npm:

 npm install penthouse 

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

пентхауз

Для улучшенного, платного сервиса для этого инструмента, обязательно проверьте этот .

11. Критический

Critical — это инструмент Node.js, созданный Addy Osmani, чтобы помочь вам извлечь и встроить CSS критических путей в ваши HTML-страницы. Вы можете установить его из npm:

 npm install -g critical critical test/fixture/index.html --base test/fixture > critical.css 

Critical может использоваться как инструмент CLI или может быть интегрирован с системами сборки, такими как Gulp.

12. Optimize-JS

Вы можете использовать Optimize-js, чтобы оптимизировать код JavaScript для более быстрой начальной загрузки, заключая в скобки немедленно вызванные функции.

Этот инструмент можно установить из npm:

 npm install -g optimize-js 

Затем вы можете использовать его через CLI:

 optimize-js input.js > output.js 

13. Инструменты оптимизации изображения

ImageOptim

ImageOptim — это бесплатное приложение с открытым исходным кодом для Mac, которое оптимизирует изображения по размеру. Он также доступен как платный онлайн-сервис .

Pngcrush

Pngcrush — это бесплатный PNG-оптимизатор с открытым исходным кодом, доступный для Windows и Linux.

Trimage

Trimage — это кроссплатформенный и бесплатный инструмент для оптимизации файлов PNG и JPG без потерь.

Инструменты производительности на стороне сервера

14. Apachetop

Apachetop — это инструмент, вдохновленный top и основанный на mytop который можно использовать для мониторинга производительности вашего веб-сервера Apache. Он может использоваться для отображения текущего количества записей, чтений и обработанных запросов.

Для систем на основе Debian вы можете установить apachetop с помощью apt:

 sudo apt-get install apachetop 

Для систем на базе Red Hat и CentOS включите репозиторий EPEL, чтобы установить apachetop, затем используйте менеджер пакетов yum:

 sudo yum -y install epel-release sudo yum clean all sudo yum -y update sudo yum -y install apachetop 

Затем вы можете использовать его, предоставив файл журнала вашего сервера Apache:

 apachetop -f /var/log/apache2/access.log 

Убедитесь, что у вас есть разрешение на чтение файла журнала.

15. Ngxtop

Ngxtop — это топовый инструмент, основанный на Python, который анализирует ваш журнал доступа к серверу Nginx и выводит важные метрики, такие как активный запрос, общее количество запросов по коду состояния, количество удаленных IP-адресов и среднее количество байтов, отправленных в режиме реального времени. Ngxtop также можно использовать для анализа журнала доступа Apache.

Вот пример вывода по умолчанию из Ngxtop:

ngxtop

Убедитесь, что в вашей системе установлен менеджер пакетов Python и PIP, а затем выполните следующую команду для установки Ngxtop:

 pip install ngxtop ngxtop -h 

Вы также можете проверить эти похожие инструменты:

  • Ngx-top : альтернатива Ngxtop, построенная с использованием Haskell.
  • Luameter : коммерческий модуль Lua для Nginx, который предоставляет ключевые показатели производительности для мониторинга Nginx в режиме реального времени.

16. uptime-cli

Uptime-cli — это инструмент CLI для мониторинга времени работы вашего сайта с помощью Uptime Robot API .

Провел-кли

Вы можете установить инструмент из npm:

 npm install -g uptime-cli 

Инструменты производительности SQL

17. Тюнинг-праймер

Tuning-primer — современный сценарий настройки производительности MySQL на Bash для MySQL версии 5.5 или выше.

Он основан на учебнике по настройке производительности MySQL версии 1.6-r1 .

 wget https://github.com/RootService/tuning-primer/blob/master/tuning-primer.sh chmod +x tuning-primer.sh 

18. MySQLTuner

MySQLTuner — это скрипт, написанный на Perl, который анализирует производительность вашего сервера MySQL, а затем показывает рекомендации на основе найденной информации. Эти рекомендации — просто настройка переменных конфигурации (находится в файле /etc/mysql/my.cnf ) для повышения эффективности работы сервера MySQL.

Вы можете получить скрипт MySQLTuner с mysqltuner.com, используя такой инструмент, как wget :

 wget http://mysqltuner.com/mysqltuner.pl chmod +x mysqltuner.pl ./mysqltuner.pl --help 

19. Mytop

Mytop — это топовый инструмент CLI для отображения производительности сервера MySQL путем подключения к серверу и периодического запуска команд show processlist и show status . Затем он суммирует информацию.

Для систем на основе Debian вы можете использовать apt-get для установки mytop:

 sudo yum -y install epel-release sudo yum clean all sudo yum -y update sudo apt-get install mytop 

Для систем на базе Red Hat и Centos включите репозиторий EPEL, чтобы установить Mytop, затем используйте менеджер пакетов yum:

 sudo yum install mytop 

20. SQLBenchmarkPro

SQLBenchmarkPro — это бесплатный облачный сервис, который может удаленно контролировать вашу базу данных и серверы SQL для малого и крупного бизнеса. Он работает путем локальной установки агента SQLBenchmarkPro, который постоянно отслеживает производительность и работоспособность ваших серверов.

Инструменты нагрузочного тестирования

21. Apache JMeter

Apache JMeter — это инструмент с открытым исходным кодом, созданный на основе Java Стефано Маццокки из Apache Software Foundation. Может использоваться для нагрузочного тестирования и измерения производительности.

Поскольку JMeter построен на Java, он доступен на всех основных платформах, таких как Windows, Linux и macOS.

Убедитесь, что у вас установлена ​​Java, затем перейдите на эту страницу, чтобы загрузить JMeter. Затем вы можете запустить JMeter в режиме графического интерфейса, в режиме сервера или в режиме командной строки из разных сценариев в папке bin .

22. Мельница

Grinder — это среда нагрузочного тестирования, построенная с использованием Java, которая может использоваться для проведения распределенного нагрузочного тестирования на многих машинах с инжектором нагрузки. Это инструмент с открытым исходным кодом, доступный в стиле BSD .

Вы можете использовать Grinder для загрузки любого теста от HTTP-серверов до сервисов SOAP и API REST, а также серверов приложений CORBA, RMI, JMS и EJB и т. Д.

Вы можете гибко писать сценарии для среды Grinder, используя мощные языки сценариев, такие как Jython и Closure . Найдите больше информации на официальной странице SourceForge .

Grinder доступен для бесплатной загрузки с SourceForge.net .

23. Гатлинг

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

Gatling может быть написан с использованием языка Scala и простого языка DSL, который может удовлетворить большинство ваших потребностей.

Вы можете скачать Gatling с официального сайта Gatling , затем просто разархивировать пакет и запустить инструмент из различных скриптов в папке bin .

Заворачивать

Этот список далеко не полон, поэтому, если у вас есть какой-либо предпочтительный инструмент (ы) для анализа или настройки производительности ваших веб-приложений, напишите мне в Twitter !