Назад в блог

~ 3 минуты

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

31

9/17/2024

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

Вадим Пашаев

Вадим Пашаев

Инженер, веб-разработчик, путешественник

Использование curl для замеров производительности | PXSTUDIO
Регистрация товарных знаков
Домены, хостинг от reg.ru

Как-то раз мне потребовалось очень быстро измерить время загрузки страницы, но мне очень не хотелось устанавливать монструозные инструменты, типа Postman и т.п. Я посмотрел на просторах интернета и оказалось, что измерять время можно и с помощью утилиты curl.

Так вот, для того, чтобы замерить время ответа HTTP-запроса с помощью curl, можно использовать параметр -w (или --write-out). Например, для замера времени ответа можно написать так:

curl -o /dev/null -s -w "Total time: %{time_total}s\n" https://pxstudio.pw

Параметры:

  • -o /dev/null — это указание игнорировать вывод содержимого ответа.
  • -s — работает в "тихом" режиме, убирая прогресс-бар и сообщения об ошибках.
  • -w "Total time: %{time_total}s\n" — выводит общее время выполнения запроса.

Результат:

Результат замера времени загрузки страницы в curl
Результат замера времени загрузки страницы в curl

Помимо этого у утилиты есть еще дополнительные параметры, которые позволяют замерять дополнительные параметры времени. Например:

  • %{time_total} — общее время выполнения запроса.
  • %{time_namelookup} — время, затраченное на разрешение DNS.
  • %{time_connect} — время до установки TCP-соединения.
  • %{time_pretransfer} — время до начала передачи данных.
  • %{time_starttransfer} — время до получения первого байта ответа.

И тогда полный пример с замером всех необходимых метрик будет выглядеть следующим образом:

curl -o /dev/null -s -w "DNS Lookup: %{time_namelookup}s\nConnect: %{time_connect}s\nStart Transfer: %{time_starttransfer}s\nTotal time: %{time_total}s\n" https://example.com

Ну и результат:

Результат замера времени загрузки страницы в curl с дополнительными параметрами
Результат замера времени загрузки страницы в curl с дополнительными параметрами

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Оценка проекта

Хотите быструю оценку Вашего проекта?

Василий Иванов
Максим Насенников
Виктория Мальцева
Vadim Pashaev

Заполните форму справа и наша команда экспертов поможет найти для Вас оптимальное решение вашей идеи или задачи

Есть интересная идея?

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