Misst Zeit bis zu First-byte für einzelne oder mehrere URLs. Sie können Ihnen schnellste, langsamste und mittlere TTFB -Werte und optional alle Antwortheader protokollieren.

Usage: ttfb [options] url [url...]
-d debug
-l <log file> (infers -d) log response headers. Defaults to ./curl.log
-n <number> of times to test time to first byte
-o <option> pass options to curl (e.g. -o "-k" will make curl ignore invalid certificates)
-v verbose output. Show response breakdown (DNS lookup, TLS handshake etc)
Implizit folgt einer Umleitungskette mit Curls -L -Option.
Kann alle Antwort -Header protokollieren (die Standardprotokolldatei ist ./curl.log ), indem Sie mit -d aufrufen.
Überschreiben Sie die Standardprotokolldatei, indem Sie -l /some/file angeben.
Holen Sie sich die schnellsten, langsamsten und mittleren TTFB -Werte, indem Sie die Anzahl der Male angeben, um eine URL aufzurufen. Verwenden Sie -n2 für 2 Tests, -n5 für 5 und so weiter.
Verwendet die Berechnung %{time_starttransfer¹} - %{time_appconnect²} der keinen Verbindungsaufwand enthält, um die TTFB -Abbildung von Devtool zu verbessern.
¹ time_starttransfer
Die Zeit, in Sekunden, dauerte es von Anfang an, bis das erste Byte gerade übertragen wurde. Dies schließt Time_Pretransfer und auch die Zeit ein, die der Server zur Berechnung des Ergebnisses benötigt wird.
² time_appconnect
Die Zeit, in Sekunden, dauerte es von Anfang an, bis die SSL/SSH/ETC -Verbindung/den Handschlag mit dem Remote -Host abgeschlossen war.
Basierend auf einem Kern von https://github.com/sandeeeepraju
Modifiziert von [email protected], @jaygooby
Laden Sie das Skript aus der Master -Filiale herunter und machen Sie es ausführbar:
curl -LJO https://raw.githubusercontent.com/jaygooby/ttfb.sh/master/ttfb
chmod +x ./ttfb
Usage: ttfb [options] url [url...]
-d debug
-l <log file> (infers -d) log response headers. Defaults to ./curl.log
-n <number> of times to test time to first byte
-o <option> pass options to curl (e.g. -o "-k" will make curl ignore invalid certificates)
-v verbose output. Show response breakdown (DNS lookup, TLS handshake etc)
Grundnutzung:
$ ttfb example.com
.227436
Grundlegende Nutzung mit ausführlicher Reaktionsaufschlüsselung:
$ ttfb -v https://example.com
DNS lookup: 0.005152 TLS handshake: 0.000000 TTFB including connection: 0.200831 TTFB: .200831 Total time: 0.201132
Mehrfach testen:
$ ttfb -n 5 example.com/example/url
.....
fastest .177263 slowest .214302 median .179957
Testen Sie mehrere URLs:
$ ttfb bbc.co.uk news.bbc.co.uk
bbc.co.uk .049985
news.bbc.co.uk .054122
Testen Sie mehrere URLs mehrmals:
$ ttfb -n 5 bbc.co.uk news.bbc.co.uk
.....
.....
bbc.co.uk fastest .030936 slowest .057755 median .034663
news.bbc.co.uk fastest .031413 slowest .182791 median .035001
Ausführliche Reaktionsaufschlüsselung Wenn mehrere Tests angegeben sind:
$ ttfb -v -n 5 bbc.co.uk
DNS lookup: 0.005335 TLS handshake: 0.102314 TTFB including connection: 0.148328 TTFB: .046014 Total time: 0.646115
DNS lookup: 0.005322 TLS handshake: 0.102609 TTFB including connection: 0.150693 TTFB: .048084 Total time: 0.644611
DNS lookup: 0.004277 TLS handshake: 0.102066 TTFB including connection: 0.172199 TTFB: .070133 Total time: 1.196256
DNS lookup: 0.004444 TLS handshake: 0.107375 TTFB including connection: 0.160771 TTFB: .053396 Total time: 0.637290
DNS lookup: 0.005352 TLS handshake: 0.118882 TTFB including connection: 0.168772 TTFB: .049890 Total time: 0.653761
fastest .046014 slowest .070133 median .049890
Loggen Sie alle Antwortheader für mehrere Tests in mehreren URLs an:
ttfb -d -n 2 bbc.co.uk https://www.bbc.co.uk/weather
..
..
bbc.co.uk fastest .027550 slowest .055215 median .041382
https://www.bbc.co.uk/weather fastest .101020 slowest .297923 median .199471
$ ls *.log
bbc_co_uk-curl.log https___www_bbc_co_uk_weather-curl.log
$ cat https___www_bbc_co_uk_weather-curl.log
HTTP/2 200
server: openresty
x-cache-action: MISS
vary: Accept-Encoding,X-BBC-Edge-Cache,X-BBC-Edge-Scheme,X-CDN
x-cache-age: 0
cache-control: private, stale-while-revalidate=10, max-age=0, must-revalidate
content-type: text/html;charset=utf-8
x-mrid: w1
date: Thu, 11 Apr 2019 17:08:07 GMT
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-lb-nocache: true
x-msig: 24e37f81323984e4e45b8048f9e3c94a
x-frame-options: SAMEORIGIN
content-length: 1077454
HTTP/2 200
server: openresty
x-cache-action: MISS
vary: Accept-Encoding,X-BBC-Edge-Cache,X-BBC-Edge-Scheme,X-CDN
x-cache-age: 0
cache-control: private, stale-while-revalidate=10, max-age=0, must-revalidate
content-type: text/html;charset=utf-8
x-mrid: w1
date: Thu, 11 Apr 2019 17:08:08 GMT
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-lb-nocache: true
x-msig: 24e37f81323984e4e45b8048f9e3c94a
x-frame-options: SAMEORIGIN
content-length: 1077454
In https://blog.cloudflare.com/a-question-of-diming/ und https://curl.haxx.se/docs/Manpage.html finden Sie eine Erläuterung, wie sich die Curl-Variablen in Bezug auf die verschiedenen Stufen des Transfers beziehen.
Um eine bessere Annäherung an Devtools TTFB zu erhalten, betrachten wir die Zeit ohne Verbindungsaufwand: %{time_starttransfer} - %{time_appconnect}
Verwendet eine schmutzige eval , um die TTFB -Arithmetik durchzuführen. Hängt von bc und column ab.
Wenn Sie eine PR einreichen möchten, stellen Sie sicher, dass alle vorhandenen Tests bestehen. Wenn sie neue Funktionen hinzufügen, fügen Sie in der Testsuite einen Test hinzu.
Um die Tests durchzuführen, rufen Sie die Projektroste make . Sie müssen Fledermäuse-Kern installiert und in Ihrem $PATH installieren lassen.
Wenn Sie nur ein oder zwei Tests ausführen möchten, wenden Sie sich an die # skip -Linien in den Tests, die Ihnen egal sind, also lesen sie skip , und dann werden diese Tests übersprungen.
Weitere Informationen finden Sie CONTRIBUTING.md .
Fortschritte zeigen, wenn mehr als eine Anforderung ( -n 2 usw.) Option festgelegt ist
-o ). Sortieren Sie die Ausgabe nach dem schnellsten TTFB, wenn mehrere URLs geliefert werden
Farbcode Die TTFB: Abbildung in der Standardantwort gemäß der Geschwindigkeit der Antwort.