- uint64_t events = 0;
- double global_average = 0;
- uint64_t global_tps = 0;
- double global_rate = 0;
- double global_std = 0;
- double global_log = 0;
-
- uint64_t diff_time = 0;
- uint64_t diff_events = 0;
- double diff_squares = 0;
- double diff_log_product = 0;
- double period_average = 0;
- uint64_t period_tps = 0;
- double period_rate = 0;
- double period_std = 0;
- double period_log = 0;
-
- if ((events = ms_get_events(stat)) == 0) {
- return;
- }
-
- global_average = (double)(stat->total_time / events);
- global_tps = events / (uint64_t)run_time;
- global_rate = (double)events * obj_size / 1024 / 1024 / run_time;
- global_std = sqrt((stat->squares - (double)events * global_average
- * global_average) / (double)(events - 1));
- global_log = exp(stat->log_product / (double)events);
-
- diff_time = stat->total_time - stat->pre_total_time;
- diff_events = events - stat->pre_events;
- if (diff_events >= 1) {
- period_average = (double)(diff_time / diff_events);
- period_tps = diff_events / (uint64_t)freq;
- period_rate = (double)diff_events * obj_size / 1024 / 1024 / freq;
- diff_squares = (double)stat->squares - (double)stat->pre_squares;
- period_std = sqrt((diff_squares - (double)diff_events * period_average
- * period_average) / (double)(diff_events - 1));
- diff_log_product = stat->log_product - stat->pre_log_product;
- period_log = exp(diff_log_product / (double)diff_events);
- }
-
- printf("%s Statistics\n", stat->name);
- printf("%-8s %-8s %-12s %-12s %-10s %-10s %-8s %-10s %-10s %-10s %-10s\n", "Type",
- "Time(s)", "Ops", "TPS(ops/s)", "Net(M/s)", "Get_miss", "Min(us)", "Max(us)",
- "Avg(us)", "Std_dev", "Geo_dist");
-
- printf("%-8s %-8d %-12llu %-12lld %-10.1f %-10lld %-8lld %-10lld %-10lld %-10.2f %.2f\n",
- "Period", freq, (long long)diff_events, (long long)period_tps, global_rate,
- (long long)(stat->get_miss - stat->pre_get_miss),
- (long long)stat->period_min_time, (long long)stat->period_max_time,
- (long long)period_average, period_std, period_log);
-
- printf("%-8s %-8d %-12llu %-12lld %-10.1f %-10lld %-8lld %-10lld %-10lld %-10.2f %.2f\n\n",
- "Global", run_time, (long long)events, (long long)global_tps, period_rate,
- (long long)stat->get_miss, (long long)stat->min_time,
- (long long)stat->max_time, (long long)global_average,
- global_std, global_log);
-
- stat->pre_events = events;
- stat->pre_squares = (uint64_t)stat->squares;
- stat->pre_total_time = stat->total_time;
- stat->pre_log_product = stat->log_product;
- stat->period_min_time = (uint64_t)-1;
- stat->period_max_time = 0;
- stat->pre_get_miss = stat->get_miss;
-