Measure time more accurately
This commit is contained in:
parent
cfff8a5ed5
commit
dcd2e13aec
|
@ -43,7 +43,7 @@ struct rapidjson : public rapidjson_base {
|
|||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), ids);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, rapidjson);
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, rapidjson)->UseManualTime();
|
||||
|
||||
struct rapidjson_insitu : public rapidjson_base {
|
||||
bool run(const padded_string &json, std::vector<uint64_t> &ids) {
|
||||
|
@ -51,7 +51,7 @@ struct rapidjson_insitu : public rapidjson_base {
|
|||
return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json_copy.data()), ids);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, rapidjson_insitu);
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, rapidjson_insitu)->UseManualTime();
|
||||
|
||||
} // namespace partial_tweets
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ struct simdjson_dom {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, simdjson_dom);
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, simdjson_dom)->UseManualTime();
|
||||
|
||||
} // namespace distinct_user_id
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ struct simdjson_ondemand {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, simdjson_ondemand);
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, simdjson_ondemand)->UseManualTime();
|
||||
|
||||
} // namespace distinct_user_id
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ struct yyjson {
|
|||
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, yyjson);
|
||||
BENCHMARK_TEMPLATE(distinct_user_id, yyjson)->UseManualTime();
|
||||
|
||||
} // namespace distinct_user_id
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ struct rapidjson : public rapidjson_base {
|
|||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), find_id, text);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(find_tweet, rapidjson);
|
||||
BENCHMARK_TEMPLATE(find_tweet, rapidjson)->UseManualTime();
|
||||
|
||||
struct rapidjson_insitu : public rapidjson_base {
|
||||
bool run(const padded_string &json, uint64_t find_id, std::string_view &text) {
|
||||
|
@ -44,7 +44,7 @@ struct rapidjson_insitu : public rapidjson_base {
|
|||
return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json_copy.data()), find_id, text);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(find_tweet, rapidjson_insitu);
|
||||
BENCHMARK_TEMPLATE(find_tweet, rapidjson_insitu)->UseManualTime();
|
||||
|
||||
} // namespace partial_tweets
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ struct simdjson_dom {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(find_tweet, simdjson_dom);
|
||||
BENCHMARK_TEMPLATE(find_tweet, simdjson_dom)->UseManualTime();
|
||||
|
||||
} // namespace find_tweet
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ struct simdjson_ondemand {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(find_tweet, simdjson_ondemand);
|
||||
BENCHMARK_TEMPLATE(find_tweet, simdjson_ondemand)->UseManualTime();
|
||||
|
||||
} // namespace find_tweet
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ struct yyjson {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(find_tweet, yyjson);
|
||||
BENCHMARK_TEMPLATE(find_tweet, yyjson)->UseManualTime();
|
||||
|
||||
} // namespace find_tweet
|
||||
|
||||
|
|
|
@ -37,7 +37,9 @@ template<typename B, typename R> static void run_json_benchmark(benchmark::State
|
|||
if (!bench.before_run(state)) { state.SkipWithError("before_run failed"); };
|
||||
collector.start();
|
||||
if (!bench.run(state)) { state.SkipWithError("run failed"); return; }
|
||||
events << collector.end();
|
||||
auto event = collector.end();
|
||||
events << event;
|
||||
state.SetIterationTime(event.elapsed_sec());
|
||||
if (!bench.after_run(state)) { state.SkipWithError("after_run failed"); return; };
|
||||
}
|
||||
|
||||
|
|
|
@ -38,14 +38,14 @@ struct rapidjson : public rapidjson_base {
|
|||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), points);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(kostya, rapidjson);
|
||||
BENCHMARK_TEMPLATE(kostya, rapidjson)->UseManualTime();
|
||||
|
||||
struct rapidjson_lossless : public rapidjson_base {
|
||||
bool run(const padded_string &json, std::vector<point> &points) {
|
||||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag | kParseFullPrecisionFlag>(json.data()), points);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(kostya, rapidjson_lossless);
|
||||
BENCHMARK_TEMPLATE(kostya, rapidjson_lossless)->UseManualTime();
|
||||
|
||||
struct rapidjson_insitu : public rapidjson_base {
|
||||
bool run(const padded_string &json, std::vector<point> &points) {
|
||||
|
@ -53,7 +53,7 @@ struct rapidjson_insitu : public rapidjson_base {
|
|||
return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json_copy.data()), points);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(kostya, rapidjson_insitu);
|
||||
BENCHMARK_TEMPLATE(kostya, rapidjson_insitu)->UseManualTime();
|
||||
|
||||
} // namespace kostya
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ struct simdjson_dom {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(kostya, simdjson_dom);
|
||||
BENCHMARK_TEMPLATE(kostya, simdjson_dom)->UseManualTime();
|
||||
|
||||
} // namespace kostya
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ struct simdjson_ondemand {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(kostya, simdjson_ondemand);
|
||||
BENCHMARK_TEMPLATE(kostya, simdjson_ondemand)->UseManualTime();
|
||||
|
||||
} // namespace kostya
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ struct yyjson {
|
|||
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(kostya, yyjson);
|
||||
BENCHMARK_TEMPLATE(kostya, yyjson)->UseManualTime();
|
||||
|
||||
} // namespace kostya
|
||||
|
||||
|
|
|
@ -35,14 +35,14 @@ struct rapidjson : public rapidjson_base {
|
|||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), points);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(large_random, rapidjson);
|
||||
BENCHMARK_TEMPLATE(large_random, rapidjson)->UseManualTime();
|
||||
|
||||
struct rapidjson_lossless : public rapidjson_base {
|
||||
bool run(const simdjson::padded_string &json, std::vector<point> &points) {
|
||||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag | kParseFullPrecisionFlag>(json.data()), points);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(large_random, rapidjson_lossless);
|
||||
BENCHMARK_TEMPLATE(large_random, rapidjson_lossless)->UseManualTime();
|
||||
|
||||
struct rapidjson_insitu : public rapidjson_base {
|
||||
bool run(const simdjson::padded_string &json, std::vector<point> &points) {
|
||||
|
@ -50,7 +50,7 @@ struct rapidjson_insitu : public rapidjson_base {
|
|||
return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json_copy.data()), points);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(large_random, rapidjson_insitu);
|
||||
BENCHMARK_TEMPLATE(large_random, rapidjson_insitu)->UseManualTime();
|
||||
|
||||
|
||||
} // namespace large_random
|
||||
|
|
|
@ -19,7 +19,7 @@ struct simdjson_dom {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(large_random, simdjson_dom);
|
||||
BENCHMARK_TEMPLATE(large_random, simdjson_dom)->UseManualTime();
|
||||
|
||||
} // namespace large_random
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ struct simdjson_ondemand {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(large_random, simdjson_ondemand);
|
||||
BENCHMARK_TEMPLATE(large_random, simdjson_ondemand)->UseManualTime();
|
||||
|
||||
} // namespace large_random
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ struct simdjson_ondemand_unordered {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(large_random, simdjson_ondemand_unordered);
|
||||
BENCHMARK_TEMPLATE(large_random, simdjson_ondemand_unordered)->UseManualTime();
|
||||
|
||||
} // namespace large_random
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ struct yyjson {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(large_random, yyjson);
|
||||
BENCHMARK_TEMPLATE(large_random, yyjson)->UseManualTime();
|
||||
|
||||
} // namespace large_random
|
||||
|
||||
|
|
|
@ -64,16 +64,15 @@ struct rapidjson : public rapidjson_base {
|
|||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), tweets);
|
||||
}
|
||||
};
|
||||
BENCHMARK_TEMPLATE(partial_tweets, rapidjson);
|
||||
BENCHMARK_TEMPLATE(partial_tweets, rapidjson)->UseManualTime();
|
||||
|
||||
// TODO this fails!
|
||||
// struct rapidjson_insitu : public rapidjson_base {
|
||||
// bool run(const padded_string &json, std::vector<tweet> &tweets) {
|
||||
// padded_string json_copy{json.data(), json.size()};
|
||||
// return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json_copy.data()), tweets);
|
||||
// bool run(simdjson::padded_string &json, std::vector<tweet> &tweets) {
|
||||
// return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json.data()), tweets);
|
||||
// }
|
||||
// };
|
||||
// BENCHMARK_TEMPLATE(partial_tweets, rapidjson_insitu);
|
||||
// BENCHMARK_TEMPLATE(partial_tweets, rapidjson_insitu)->UseManualTime();
|
||||
|
||||
} // namespace partial_tweets
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ struct simdjson_dom {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(partial_tweets, simdjson_dom);
|
||||
BENCHMARK_TEMPLATE(partial_tweets, simdjson_dom)->UseManualTime();
|
||||
|
||||
} // namespace partial_tweets
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ struct simdjson_ondemand {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(partial_tweets, simdjson_ondemand);
|
||||
BENCHMARK_TEMPLATE(partial_tweets, simdjson_ondemand)->UseManualTime();
|
||||
|
||||
} // namespace partial_tweets
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ struct yyjson {
|
|||
}
|
||||
};
|
||||
|
||||
BENCHMARK_TEMPLATE(partial_tweets, yyjson);
|
||||
BENCHMARK_TEMPLATE(partial_tweets, yyjson)->UseManualTime();
|
||||
|
||||
} // namespace partial_tweets
|
||||
|
||||
|
|
Loading…
Reference in New Issue