Z tego genialnego posta na blogu ... https://blog.josephscott.org/2011/10/14/timing-details-with-curl/
cURL obsługuje sformatowane dane wyjściowe dla szczegółów żądania (szczegóły na stronie podręcznika cURL , poniżej -w, –write-out <format>
). Dla naszych celów skupimy się tylko na podanych szczegółach czasowych. Czasy poniżej podano w sekundach .
Utwórz nowy plik curl-format.txt i wklej:
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
Złóż wniosek:
curl -w "@curl-format.txt" -o /dev/null -s "http://wordpress.com/"
Lub w systemie Windows to ...
curl -w "@curl-format.txt" -o NUL -s "http://wordpress.com/"
Co to robi:
-w "@curl-format.txt"
mówi cURL, aby użył naszego pliku formatu
-o /dev/null
przekierowuje dane wyjściowe żądania do / dev / null
-s
mówi cURL, aby nie pokazywał wskaźnika postępu,
"http://wordpress.com/"
którego żądamy. Używaj cudzysłowów, zwłaszcza jeśli Twój adres URL ma parametry ciągu zapytania „&”
A oto, co otrzymasz:
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
Utwórz skrót do systemu Linux / Mac (alias)
alias curltime="curl -w \"@$HOME/.curl-format.txt\" -o NUL -s "
Następnie możesz po prostu zadzwonić ...
curltime wordpress.org
Dzięki komentatorowi Pete Doyle!
Utwórz samodzielny skrypt dla systemu Linux / Mac
Ten skrypt nie wymaga osobnego pliku .txt do przechowywania formatowania.
Utwórz nowy plik, curltime, gdzieś na ścieżce wykonywalnej i wklej:
#!/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
Zadzwoń tak samo jak alias:
curltime wordpress.org
Utwórz skrót do systemu Windows (inaczej plik BAT)
Umieść to polecenie w CURLTIME.BAT (w tym samym folderze co curl.exe)
curl -w "@%~dp0curl-format.txt" -o NUL -s %*
Następnie możesz po prostu zadzwonić ...
curltime wordpress.org
\n
złamanie linii w pliku tekstowym@curl -w "@%~dp0curl-format.txt" -o NUL -s %*
Świetna odpowiedźalias curltime="curl -w \"@$HOME/.curl-format.txt\" -o NUL -s "
. Prawdopodobnie działa również w systemie MacOS.Oto odpowiedź:
Wszystkie zmienne używane z
-w
można znaleźć wman curl
.źródło
"\n%{time_connect}:%{time_starttransfer}:%{time_total}\n"
-sS
).Opcja 1. Aby zmierzyć
total time
:Przykładowe dane wyjściowe:
Opcja 2. Aby dostać
time to establish connection
,TTFB: time to first byte
itotal time
:Przykładowe dane wyjściowe:
Ref: Uzyskaj czas reakcji z curl
źródło
Skrót, który możesz dodać do pliku .bashrc itp., Na podstawie innych odpowiedzi tutaj:
Stosowanie:
źródło
curl -o /dev/null -s -w "time_total: %{time_total} sec\nsize_download: %{size_download} bytes\n" https://www.google.com
Poniższe inspiruje odpowiedź Simona. Jest samowystarczalny (nie wymaga osobnego formatu), co czyni go doskonałym do włączenia do
.bashrc
.Ponadto powinien działać ze wszystkimi argumentami, które
curl
normalnie biorą, ponieważ"$@"
tylko je przekazuje. Na przykład możesz wykonać:Wynik:
źródło
Jeśli chcesz przeanalizować lub podsumować opóźnienie, możesz wypróbować ławkę Apache:
Na przykład:
Pokaże:
źródło
ab
łatwo przyjmuje wiele takich samych flag, jakcurl
np-H
. Nagłówki. Użyłem tego polecenia do porównania czasów odpowiedzi interfejsu API strony trzeciej (dostarczając token nośnika w nagłówku autoryzacji). Działa świetnie.Innym sposobem jest
~/.curlrc
taka konfiguracjaWięc wynik
curl
jestźródło
Hej jest lepszy niż Apache Bench, ma mniej problemów z SSL
Bibliografia
źródło
Kolejną opcją, być może najprostszą pod względem wiersza poleceń, jest dodanie wbudowanej
--trace-time
opcji:Mimo że technicznie nie generuje on taktowania różnych kroków zgodnie z żądaniem PO, wyświetla znaczniki czasu dla wszystkich kroków żądania, jak pokazano poniżej. Za pomocą tego możesz (dość łatwo) obliczyć, ile czasu zajął każdy krok.
źródło
curl -v --trace-time
Należy to zrobić w trybie pełnymźródło
Zrobiłem przyjazny formatter do wąchania żądań curl, aby pomóc w debugowaniu (zobacz komentarze dotyczące użycia). Zawiera każdy znany parametr wyjściowy, który można zapisać w łatwym do odczytania formacie.
https://gist.github.com/manifestinteractive/ce8dec10dcb4725b8513
źródło
tutaj jest ciąg, którego możesz użyć
-w
, zawiera wszystkiecurl -w
obsługiwane opcje .wyprowadza JSON.
źródło
\n
pomaga rozdzielić czas, gdy ciało nie kończy się na nowej linii:curl -w '\n{"contentType":"..."}...
Oto linijka Bash, która wielokrotnie trafia na ten sam serwer:
źródło
Jest to zmodyfikowana wersja odpowiedzi Simonsa, która sprawia, że wielowierszowy wynik jest pojedynczą linią. Wprowadza także bieżący znacznik czasu, dzięki czemu łatwiej jest śledzić każdy wiersz wyniku.
Przykładowy format fle przykład cmd wynikiUżyłem powyższego, aby złapać wolne odpowiedzi w powyższym punkcie końcowym.
źródło