From: Florian Dold Date: Wed, 26 Sep 2018 13:18:47 +0000 (+0200) Subject: benchmark: track max time for URLs X-Git-Tag: v0.11.0~241^2~21^2~19 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=99ba49914858c3af26e8fb6cd765af607ea178d9;p=oweals%2Fgnunet.git benchmark: track max time for URLs --- diff --git a/src/curl/curl.c b/src/curl/curl.c index 07f31970a..ec65986cb 100644 --- a/src/curl/curl.c +++ b/src/curl/curl.c @@ -505,15 +505,18 @@ GNUNET_CURL_perform (struct GNUNET_CURL_Context *ctx) #if ENABLE_BENCHMARK { char *url = NULL; - double total = 0; + double total_as_double = 0; + struct GNUNET_TIME_Relative total; struct UrlRequestData *urd; CURLcode res; - res = curl_easy_getinfo (cmsg->easy_handle, CURLINFO_TOTAL_TIME, &total); + res = curl_easy_getinfo (cmsg->easy_handle, CURLINFO_TOTAL_TIME, &total_as_double); GNUNET_break (CURLE_OK == res); curl_easy_getinfo (cmsg->easy_handle, CURLINFO_EFFECTIVE_URL, &url); + total.rel_value_us = total_as_double * 1000 * 1000; urd = get_url_benchmark_data (url, (unsigned int) response_code); urd->count++; - urd->time.rel_value_us += total * 1000 * 1000; + urd->time = GNUNET_TIME_relative_add (urd->time, total); + urd->time_max = GNUNET_TIME_relative_max (total, urd->time_max); } #endif job->jcc (job->jcc_cls, diff --git a/src/util/benchmark.c b/src/util/benchmark.c index 108e01659..b5fc2752c 100644 --- a/src/util/benchmark.c +++ b/src/util/benchmark.c @@ -135,11 +135,12 @@ write_benchmark_data (struct BenchmarkData *bd) for (unsigned int i = 0; i < bd->urd_len; i++) { struct UrlRequestData *urd = &bd->urd[i]; - GNUNET_asprintf (&s, "url %s status %u count %llu time_us %llu\n", + GNUNET_asprintf (&s, "url %s status %u count %llu time_us %llu time_us_max %llu\n", urd->request_url, urd->status, (unsigned long long) urd->count, - (unsigned long long) urd->time.rel_value_us); + (unsigned long long) urd->time.rel_value_us, + (unsigned long long) urd->time_max.rel_value_us); GNUNET_assert (GNUNET_SYSERR != GNUNET_DISK_file_write_blocking (fh, s, strlen (s))); GNUNET_free (s); }