Add insitu versions of rapidjson benchmark
This commit is contained in:
parent
6a595231b0
commit
f071a15591
|
@ -43,9 +43,16 @@ struct rapidjson : public rapidjson_base {
|
||||||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), ids);
|
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), ids);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
BENCHMARK_TEMPLATE(distinct_user_id, rapidjson);
|
BENCHMARK_TEMPLATE(distinct_user_id, rapidjson);
|
||||||
|
|
||||||
|
struct rapidjson_insitu : public rapidjson_base {
|
||||||
|
bool run(const padded_string &json, std::vector<uint64_t> &ids) {
|
||||||
|
padded_string json_copy{json.data(), json.size()};
|
||||||
|
return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json_copy.data()), ids);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
BENCHMARK_TEMPLATE(distinct_user_id, rapidjson_insitu);
|
||||||
|
|
||||||
} // namespace partial_tweets
|
} // namespace partial_tweets
|
||||||
|
|
||||||
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
||||||
|
|
|
@ -38,6 +38,14 @@ struct rapidjson : public rapidjson_base {
|
||||||
};
|
};
|
||||||
BENCHMARK_TEMPLATE(find_tweet, rapidjson);
|
BENCHMARK_TEMPLATE(find_tweet, rapidjson);
|
||||||
|
|
||||||
|
struct rapidjson_insitu : public rapidjson_base {
|
||||||
|
bool run(const padded_string &json, uint64_t find_id, std::string_view &text) {
|
||||||
|
padded_string json_copy{json.data(), json.size()};
|
||||||
|
return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json_copy.data()), find_id, text);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
BENCHMARK_TEMPLATE(find_tweet, rapidjson_insitu);
|
||||||
|
|
||||||
} // namespace partial_tweets
|
} // namespace partial_tweets
|
||||||
|
|
||||||
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
||||||
|
|
|
@ -38,16 +38,23 @@ struct rapidjson : public rapidjson_base {
|
||||||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), points);
|
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), points);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
BENCHMARK_TEMPLATE(kostya, rapidjson);
|
||||||
|
|
||||||
struct rapidjson_lossless : public rapidjson_base {
|
struct rapidjson_lossless : public rapidjson_base {
|
||||||
bool run(const padded_string &json, std::vector<point> &points) {
|
bool run(const padded_string &json, std::vector<point> &points) {
|
||||||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag | kParseFullPrecisionFlag>(json.data()), points);
|
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag | kParseFullPrecisionFlag>(json.data()), points);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
BENCHMARK_TEMPLATE(kostya, rapidjson);
|
|
||||||
BENCHMARK_TEMPLATE(kostya, rapidjson_lossless);
|
BENCHMARK_TEMPLATE(kostya, rapidjson_lossless);
|
||||||
|
|
||||||
|
struct rapidjson_insitu : public rapidjson_base {
|
||||||
|
bool run(const padded_string &json, std::vector<point> &points) {
|
||||||
|
padded_string json_copy{json.data(), json.size()};
|
||||||
|
return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json_copy.data()), points);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
BENCHMARK_TEMPLATE(kostya, rapidjson_insitu);
|
||||||
|
|
||||||
} // namespace kostya
|
} // namespace kostya
|
||||||
|
|
||||||
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
||||||
|
|
|
@ -35,16 +35,24 @@ struct rapidjson : public rapidjson_base {
|
||||||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), points);
|
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), points);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
BENCHMARK_TEMPLATE(large_random, rapidjson);
|
||||||
|
|
||||||
struct rapidjson_lossless : public rapidjson_base {
|
struct rapidjson_lossless : public rapidjson_base {
|
||||||
bool run(const simdjson::padded_string &json, std::vector<point> &points) {
|
bool run(const simdjson::padded_string &json, std::vector<point> &points) {
|
||||||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag | kParseFullPrecisionFlag>(json.data()), points);
|
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag | kParseFullPrecisionFlag>(json.data()), points);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
BENCHMARK_TEMPLATE(large_random, rapidjson);
|
|
||||||
BENCHMARK_TEMPLATE(large_random, rapidjson_lossless);
|
BENCHMARK_TEMPLATE(large_random, rapidjson_lossless);
|
||||||
|
|
||||||
|
struct rapidjson_insitu : public rapidjson_base {
|
||||||
|
bool run(const simdjson::padded_string &json, std::vector<point> &points) {
|
||||||
|
padded_string json_copy{json.data(), json.size()};
|
||||||
|
return rapidjson_base::run(doc.ParseInsitu<kParseValidateEncodingFlag>(json_copy.data()), points);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
BENCHMARK_TEMPLATE(large_random, rapidjson_insitu);
|
||||||
|
|
||||||
|
|
||||||
} // namespace large_random
|
} // namespace large_random
|
||||||
|
|
||||||
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
||||||
|
|
|
@ -64,9 +64,17 @@ struct rapidjson : public rapidjson_base {
|
||||||
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), tweets);
|
return rapidjson_base::run(doc.Parse<kParseValidateEncodingFlag>(json.data()), tweets);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
BENCHMARK_TEMPLATE(partial_tweets, rapidjson);
|
BENCHMARK_TEMPLATE(partial_tweets, rapidjson);
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// BENCHMARK_TEMPLATE(partial_tweets, rapidjson_insitu);
|
||||||
|
|
||||||
} // namespace partial_tweets
|
} // namespace partial_tweets
|
||||||
|
|
||||||
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
#endif // SIMDJSON_COMPETITION_RAPIDJSON
|
||||||
|
|
Loading…
Reference in New Issue