W moim programie Go wykonałem kilka żądań HTTP i potrzebowałem czasu czasu odpowiedzi (i nie wymagać czasu).Czasowa odpowiedź HTTP w Go
Oto mój aktualny kod (timing czas request):
func Get() int {
start := time.Now()
result, err := http.Get("http://www.google.com")
if err != nil {
log.Fatal(err)
}
defer result.Body.Close()
elapsed := time.Since(start).Seconds()
log.Println(elapsed)
return result.StatusCode
}
Właściwie ten kod pokaże coś o czasie 5s żądanie, w tym rozpoznawania nazw DNS i innych rzeczy ... Jeśli mogę wykonać ten sam test z narzędzie takie jak Apache JMeter, czas wynosi około 100ms (co jest rzeczywistym czasem odpowiedzi serwera, bez dbania o czas żądania).
To, czego naprawdę chcę, to obliczyć rzeczywisty czas reakcji serwera. Jak mogę to obliczyć w Go?
Co masz na myśli czas reakcji? Czas od momentu zakończenia przetwarzania żądania przez serwer do czasu otrzymania go przez klienta? Nie jestem pewien, jak to będzie możliwe - sama wycieczka, dns i wszystko, co jest nieodłączną częścią cyklu HTTP ... Najlepiej będzie, jeśli zdążysz to zrobić na serwerze. –
OK, to jest to, co myślałem. Właściwie to nie wiem, jak to jest teraz narzędzie JMeter, ale chciałbym czegoś takiego. JMeter nie sprawdza serwera (w mojej wiedzy). Testowałem z wget, a czas jest taki sam jak ten obliczony przez mój program (około 5 sekund włącznie z rozpoznawaniem DNS). – Devatoria