Compare to simdjson

This commit is contained in:
2025-05-13 15:01:27 -04:00
parent a04a558276
commit 73762b53db
5 changed files with 179673 additions and 7 deletions

View File

@@ -9,6 +9,7 @@
#include <doctest.h>
#include <nanobench.h>
#include <simdjson.h>
// This is the JSON grammar in McKeeman Form.
@@ -904,8 +905,8 @@ TEST_CASE("bench1") {
ankerl::nanobench::Bench bench;
bench.batch(json.size());
bench.unit("byte");
auto copy = json;
bench.run("parser1", [&]() {
auto copy = json;
Parser1 parser(copy.data(), copy.length(), &c, nullptr);
bench.doNotOptimizeAway(parser.parse());
});
@@ -916,9 +917,35 @@ TEST_CASE("bench2") {
ankerl::nanobench::Bench bench;
bench.batch(json.size());
bench.unit("byte");
auto copy = json;
bench.run("parser2", [&]() {
auto copy = json;
Parser2 parser(copy.data(), copy.length(), &c, nullptr);
bench.doNotOptimizeAway(parser.parse());
});
}
TEST_CASE("bench3") {
using namespace simdjson;
ankerl::nanobench::Bench bench;
bench.batch(json.size());
bench.unit("byte");
simdjson::padded_string my_padded_data(json.data(), json.size());
bench.run("parser3", [&]() {
simdjson::dom::parser parser;
auto doc = parser.parse(my_padded_data);
bench.doNotOptimizeAway(doc);
});
}
TEST_CASE("bench4") {
using namespace simdjson;
ankerl::nanobench::Bench bench;
bench.batch(json.size());
bench.unit("byte");
padded_string my_padded_data(json.data(), json.size());
bench.run("parser4", [&]() {
ondemand::parser parser;
auto doc = parser.iterate(my_padded_data);
bench.doNotOptimizeAway(doc);
});
}