2016-09-23 1 views
0

Das Juwel HTTParty und in Ruby Net :: HTTP gebaut scheinen die Aufschlüsselung der Zeit in der HTTP-Anfrage nicht zu offenbaren.Gibt es eine Möglichkeit, einen Zeitplan für eine HTTP-Anfrage in Ruby zu erhalten?

Zum Beispiel curl aussetzt:

time_appconnect Die Zeit, in Sekunden dauerte es von Anfang an, bis die SSL/SSH/etc verbinden/Handshake auf die Remote-Host abgeschlossen wurde. (Hinzugefügt in 7.19.0)

time_connect Die Zeit in Sekunden, die von Anfang bis zum Abschluss der TCP-Verbindung zum entfernten Host (oder Proxy) dauerte.

time_namelookup Die Zeit in Sekunden, die von Anfang bis zur Beendigung des Namens benötigt wurde.

time_pretransfer Die Zeit in Sekunden dauerte von Anfang an, bis die Dateiübertragung gerade begann. Dies beinhaltet alle Vor-Transfer-Befehle und Verhandlungen, die für das/die jeweilige (n) Protokoll (e) spezifisch sind.

time_redirect Die Zeit in Sekunden, die für alle Umleitungsschritte benötigt wurde, umfasst die Namenssuche, Verbindung, Vortransfer und Übertragung, bevor die letzte Transaktion gestartet wurde. time_redirect zeigt die vollständige Ausführungszeit für mehrere Umleitungen an. (Hinzugefügt in 7.12.3)

time_starttransfer Die Zeit in Sekunden, die von Anfang an verging, bis das erste Byte gerade übertragen wurde. Dies beinhaltet den time_pretransfer und auch die Zeit, die der Server benötigt hat, um das Ergebnis zu berechnen.

time_total Die Gesamtzeit in Sekunden, die der vollständige Vorgang dauerte. Die Uhrzeit wird in Millisekundenauflösung angezeigt.

Gibt es eine Möglichkeit, Timings wie DNS, TLS, SSL und Handshake von Ruby oder einem Juwel zu bekommen?

Antwort

0

Nein, Net :: HTTP stellt keine solchen Informationen zur Verfügung.

Eine mögliche (wenn auch nicht sehr praktische) Lösung besteht darin, das Skript mit z. B. ruby-prof zu profilieren, um das Timing für jeden Methodenaufruf zu ermitteln und die Ausführungszeit für jede Phase zu bestimmen.

Verwandte Themen