diff options
Diffstat (limited to 'include/framework/scheduling/statistics.h')
| -rw-r--r-- | include/framework/scheduling/statistics.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/framework/scheduling/statistics.h b/include/framework/scheduling/statistics.h index 304a0c4..34699f1 100644 --- a/include/framework/scheduling/statistics.h +++ b/include/framework/scheduling/statistics.h @@ -16,6 +16,7 @@ #include <atomic> #include <cassert> #include <chrono> +#include <cstdint> #include <cstdlib> #include <mutex> #include <unordered_map> @@ -113,6 +114,9 @@ public: int64_t query_cnt = 0; + size_t worst_query = 0; + size_t first_query = UINT64_MAX; + /* hard-coded for the moment to only consider queries */ for (auto &job : m_jobs) { @@ -120,6 +124,10 @@ public: continue; } + if (job.first < first_query) { + first_query = job.first; + } + total_queue_time += job.second.time_in_queue(); total_runtime += job.second.runtime(); @@ -133,6 +141,7 @@ public: if (job.second.runtime() > max_runtime) { max_runtime = job.second.runtime(); + worst_query = job.first; } if (job.second.runtime() < min_runtime) { @@ -163,7 +172,7 @@ public: int64_t runtime_stddev = std::sqrt(runtime_deviation_sum / query_cnt); - fprintf(stdout, "Query Count: %ld\n", query_cnt); + fprintf(stdout, "Query Count: %ld\tWorst Query: %ld\tFirst Query: %ld\n", query_cnt, worst_query, first_query); fprintf(stdout, "Average Query Scheduling Delay: %ld\t Min Scheduling Delay: %ld\t Max Scheduling Delay: %ld\tStandard Deviation: %ld\n", average_queue_time, min_queue_time, max_queue_time, queue_stddev); fprintf(stdout, "Average Query Latency: %ld\t\t Min Query Latency: %ld\t Max Query Latency: %ld\tStandard Deviation: %ld\n", average_runtime, min_runtime, max_runtime, runtime_stddev); } |