From 5edf326c0c1d96e8fb1d11a4183ea1c770dcdc95 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Tue, 28 May 2013 14:08:05 +0200 Subject: [PATCH 1/1] Time HTTP requests --- src/http.c | 7 +++++++ src/http.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/http.c b/src/http.c index 8dc082d..2720c3c 100644 --- a/src/http.c +++ b/src/http.c @@ -839,6 +839,10 @@ void http_send_response(struct http_channel *ch) struct http_response *rs = ch->response; struct http_buf *hb; + yaz_timing_stop(ch->yt); + yaz_log(YLOG_LOG, "Response: %6.5f %3.2f %3.2f", + yaz_timing_get_real(ch->yt), yaz_timing_get_user(ch->yt), + yaz_timing_get_sys(ch->yt)); assert(rs); hb = http_serialize_response(ch, rs); if (!hb) @@ -934,6 +938,7 @@ static void http_io(IOCHAN i, int event) fflush(hc->http_server->record_file); } #endif + yaz_timing_start(hc->yt); if (!(hc->request = http_parse_request(hc, &hc->iqueue, reqlen))) { yaz_log(YLOG_WARN, "Failed to parse request"); @@ -1121,6 +1126,7 @@ static void http_channel_destroy(IOCHAN i) http_buf_destroy_queue(s->http_server, s->proxy->oqueue); xfree(s->proxy); } + yaz_timing_destroy(&s->yt); http_buf_destroy_queue(s->http_server, s->iqueue); http_buf_destroy_queue(s->http_server, s->oqueue); http_fire_observers(s); @@ -1168,6 +1174,7 @@ static struct http_channel *http_channel_create(http_server_t hs, } strcpy(r->addr, addr); r->observers = 0; + r->yt = yaz_timing_create(); return r; } diff --git a/src/http.h b/src/http.h index 1b1ae10..15a5e51 100644 --- a/src/http.h +++ b/src/http.h @@ -21,6 +21,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #define HTTP_H #include +#include #include "eventl.h" // Generic I/O buffer @@ -45,6 +46,7 @@ struct http_channel int keep_alive; NMEM nmem; WRBUF wrbuf; + yaz_timing_t yt; struct http_request *request; struct http_response *response; struct http_channel *next; // for freelist -- 1.7.10.4