Из этого блестящего сообщения в блоге ... https://blog.josephscott.org/2011/10/14/timing-details-with-curl/
cURL поддерживает форматированный вывод для деталей запроса (подробности см. на странице man cURL , ниже -w, –write-out <format>
). Для наших целей мы сосредоточимся только на предоставленных деталях синхронизации. Время ниже в секундах .
Создайте новый файл curl-format.txt и вставьте его в:
time_namelookup: %{time_namelookup}s\n
time_connect: %{time_connect}s\n
time_appconnect: %{time_appconnect}s\n
time_pretransfer: %{time_pretransfer}s\n
time_redirect: %{time_redirect}s\n
time_starttransfer: %{time_starttransfer}s\n
----------\n
time_total: %{time_total}s\n
Сделать запрос:
curl -w "@curl-format.txt" -o /dev/null -s "http://wordpress.com/"
Или на Windows это ...
curl -w "@curl-format.txt" -o NUL -s "http://wordpress.com/"
Что это делает:
-w "@curl-format.txt"
говорит cURL использовать наш форматный файл,
-o /dev/null
перенаправляет вывод запроса в / dev / null,
-s
сообщает cURL не показывать индикатор прогресса
"http://wordpress.com/"
- это запрашиваемый нами URL. Используйте кавычки, особенно если ваш URL имеет параметры строки запроса "&"
И вот что вы получите обратно:
time_namelookup: 0.001s
time_connect: 0.037s
time_appconnect: 0.000s
time_pretransfer: 0.037s
time_redirect: 0.000s
time_starttransfer: 0.092s
----------
time_total: 0.164s
Создать ярлык для Linux / Mac (псевдоним)
alias curltime="curl -w \"@$HOME/.curl-format.txt\" -o NUL -s "
Тогда вы можете просто позвонить ...
curltime wordpress.org
Спасибо комментатору Питу Дойлу!
Создайте автономный скрипт для Linux / Mac
Этот сценарий не требует отдельного файла .txt для форматирования.
Создайте новый файл, curltime, где-нибудь в вашем пути к исполняемому файлу и вставьте:
#!/bin/bash
curl -w @- -o /dev/null -s "$@" <<'EOF'
time_namelookup: %{time_namelookup}\n
time_connect: %{time_connect}\n
time_appconnect: %{time_appconnect}\n
time_pretransfer: %{time_pretransfer}\n
time_redirect: %{time_redirect}\n
time_starttransfer: %{time_starttransfer}\n
----------\n
time_total: %{time_total}\n
EOF
Вызовите так же, как псевдоним:
curltime wordpress.org
Сделать ярлык Windows (он же BAT-файл)
Поместите эту команду в CURLTIME.BAT (в той же папке, что и curl.exe)
curl -w "@%~dp0curl-format.txt" -o NUL -s %*
Тогда вы можете просто позвонить ...
curltime wordpress.org
\n
чтобы разбить строку в текстовом файле@curl -w "@%~dp0curl-format.txt" -o NUL -s %*
Отличный ответalias curltime="curl -w \"@$HOME/.curl-format.txt\" -o NUL -s "
. Вероятно, работает на MacOS тоже.Вот ответ:
Все переменные, используемые с,
-w
могут быть найдены вman curl
.источник
"\n%{time_connect}:%{time_starttransfer}:%{time_total}\n"
-sS
).Вариант 1. Измерить
total time
:Пример вывода:
Вариант 2. Для того, чтобы получить
time to establish connection
,TTFB: time to first byte
иtotal time
:Пример вывода:
Ref: Получить время отклика с помощью curl
источник
Ярлык, который вы можете добавить к вашему .bashrc и т. Д., Основываясь на других ответах здесь:
Применение:
источник
curl -o /dev/null -s -w "time_total: %{time_total} sec\nsize_download: %{size_download} bytes\n" https://www.google.com
Следующее вдохновлено ответом Саймона. Он автономен (не требует отдельного файла формата), что делает его отличным для включения в
.bashrc
.Кроме того, он должен работать со всеми аргументами, которые
curl
обычно принимает, так как он"$@"
просто передает их. Например, вы можете сделать:Вывод:
источник
Если вы хотите проанализировать или суммировать время ожидания, вы можете попробовать apache bench:
Например:
Это покажет:
источник
ab
легко принимает много тех же флагов, что и,curl
например,-H
для заголовков. Я использовал эту команду для сравнения времени отклика стороннего API (указав токен-носитель в заголовке авторизации). Работал блестяще.Другой способ настройки,
~/.curlrc
как этоПоэтому выход
curl
ISисточник
Эй, лучше, чем Apache Bench, меньше проблем с SSL
Ссылки
источник
Другим вариантом, который, возможно, является самым простым с точки зрения командной строки, является добавление встроенного
--trace-time
параметра:Несмотря на то, что технически он не выводит синхронизацию различных шагов в соответствии с запросом OP, он отображает временные метки для всех шагов запроса, как показано ниже. Используя это, вы можете (довольно легко) рассчитать, сколько времени занимает каждый шаг.
источник
curl -v --trace-time
Это должно быть сделано в подробном режимеисточник
Я сделал удобный форматировщик для прослушивания запросов curl, чтобы помочь с отладкой (см. Комментарии для использования). Он содержит каждый известный выходной параметр, который вы можете записать в удобном для чтения формате.
https://gist.github.com/manifestinteractive/ce8dec10dcb4725b8513
источник
Вот строка, которую вы можете использовать
-w
, содержит все параметры, которыеcurl -w
поддерживает.выводит JSON.
источник
\n
помогает отделить время, когда тело не заканчиваетсяcurl -w '\n{"contentType":"..."}...
Вот одна строчка Bash для повторного попадания на один и тот же сервер:
источник
Это модифицированная версия ответа Саймонса, которая превращает многострочный вывод в одну строку. Он также вводит текущую временную метку, чтобы легче было отслеживать каждую строку вывода.
Образец формата fle пример cmd РезультатыЯ использовал вышеупомянутое, чтобы ловить медленные ответы на вышеупомянутой конечной точке.
источник