Dari posting blog yang brilian ini ... https://blog.josephscott.org/2011/10/14/timing-details-with-curl/
cURL mendukung output yang diformat untuk perincian permintaan (lihat manual CURL untuk detail , di bawah -w, –write-out <format>
). Untuk tujuan kami, kami akan fokus hanya pada detail waktu yang disediakan. Waktu di bawah ini dalam detik .
Buat file baru, curl-format.txt, dan rekatkan di:
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
Buat sebuah permintaan:
curl -w "@curl-format.txt" -o /dev/null -s "http://wordpress.com/"
Atau di Windows, itu ...
curl -w "@curl-format.txt" -o NUL -s "http://wordpress.com/"
Apa yang dilakukan:
-w "@curl-format.txt"
memberitahu cURL untuk menggunakan file format kami untuk
-o /dev/null
mengarahkan ulang output permintaan ke / dev / null
-s
memberitahu cURL untuk tidak menunjukkan meteran kemajuan
"http://wordpress.com/"
adalah URL yang kami minta. Gunakan tanda kutip terutama jika URL Anda memiliki "&" parameter string kueri
Dan inilah yang Anda dapatkan:
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
Buat pintasan Linux / Mac (alias)
alias curltime="curl -w \"@$HOME/.curl-format.txt\" -o NUL -s "
Maka Anda cukup menelepon ...
curltime wordpress.org
Terima kasih kepada komentator Pete Doyle!
Buat skrip mandiri Linux / Mac
Skrip ini tidak memerlukan file .txt terpisah untuk memuat pemformatan.
Buat file baru, curltime, di suatu tempat di jalur yang dapat dieksekusi, dan tempel di:
#!/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
Panggil dengan cara yang sama dengan alias:
curltime wordpress.org
Buat pintasan Windows (alias file BAT)
Letakkan perintah ini di CURLTIME.BAT (dalam folder yang sama dengan curl.exe)
curl -w "@%~dp0curl-format.txt" -o NUL -s %*
Maka Anda cukup menelepon ...
curltime wordpress.org
\n
untuk mematahkan baris dalam file teks@curl -w "@%~dp0curl-format.txt" -o NUL -s %*
Great answeralias curltime="curl -w \"@$HOME/.curl-format.txt\" -o NUL -s "
. Kemungkinan bekerja pada MacOS juga.Inilah jawabannya:
Semua variabel yang digunakan dengan
-w
dapat ditemukan diman curl
.sumber
"\n%{time_connect}:%{time_starttransfer}:%{time_total}\n"
-sS
).Opsi 1. Untuk mengukur
total time
:Output sampel:
Opsi 2. Untuk mendapatkan
time to establish connection
,TTFB: time to first byte
dantotal time
:Output sampel:
Ref: Dapatkan waktu respons dengan curl
sumber
Pintasan yang dapat Anda tambahkan ke .bashrc dll, berdasarkan jawaban lain di sini:
Pemakaian:
sumber
curl -o /dev/null -s -w "time_total: %{time_total} sec\nsize_download: %{size_download} bytes\n" https://www.google.com
Berikut ini diilhami oleh jawaban Simon. Ini mandiri (tidak memerlukan file format terpisah), yang membuatnya bagus untuk dimasukkan ke dalam
.bashrc
.Lebih lanjut, itu harus bekerja dengan semua argumen yang
curl
biasanya diperlukan, karena"$@"
hanya melewati mereka. Misalnya, Anda dapat melakukan:Keluaran:
sumber
Jika Anda ingin menganalisis atau merangkum latensi, Anda dapat mencoba bangku apache:
Sebagai contoh:
Ini akan menunjukkan:
sumber
ab
dengan mudah menerima banyak flag yang sama seperticurl
misalnya-H
untuk header. Saya menggunakan perintah ini untuk membandingkan waktu respons API pihak ketiga (memasok token pembawa di header Otorisasi). Bekerja dengan cemerlang.Cara lain adalah mengkonfigurasi
~/.curlrc
seperti iniJadi output dari
curl
issumber
Hai lebih baik daripada Apache Bench, memiliki lebih sedikit masalah dengan SSL
Referensi
sumber
Opsi lain yang mungkin paling sederhana dalam hal baris perintah adalah menambahkan
--trace-time
opsi bawaan:Meskipun secara teknis tidak menampilkan pengaturan waktu dari berbagai langkah seperti yang diminta oleh OP, ia menampilkan cap waktu untuk semua langkah permintaan seperti yang ditunjukkan di bawah ini. Dengan ini, Anda dapat (cukup mudah) menghitung berapa lama setiap langkah telah diambil.
sumber
curl -v --trace-time
Ini harus dilakukan dalam mode verbosesumber
Saya membuat formatter yang ramah untuk mengendus permintaan curl untuk membantu debugging (lihat komentar untuk penggunaan). Ini berisi setiap parameter output yang diketahui dapat Anda tulis dalam format yang mudah dibaca.
https://gist.github.com/manifestinteractive/ce8dec10dcb4725b8513
sumber
di sini adalah string yang dapat Anda gunakan
-w
, berisi semua opsi yangcurl -w
mendukung.output JSON.
sumber
\n
membantu memisahkan waktu ketika tubuh tidak berakhir dengan baris baru:curl -w '\n{"contentType":"..."}...
Berikut adalah Bash one-liner untuk memukul server yang sama berulang kali:
sumber
Ini adalah versi modifikasi dari jawaban Simons yang membuat keluaran multi-baris menjadi satu baris. Ini juga memperkenalkan timestamp saat ini sehingga lebih mudah untuk mengikuti setiap baris output.
Contoh format fle contoh cmd hasilSaya menggunakan hal di atas untuk menangkap respons lambat pada titik akhir di atas.
sumber