#include #include #include #include #include #include #include using namespace mbgl; style::Filter parse(const char* expression) { style::conversion::Error error; return *style::conversion::convertJSON(expression, error); } static void Parse_Filter(benchmark::State& state) { while (state.KeepRunning()) { parse(R"FILTER(["==", "foo", "bar"])FILTER"); } } static void Parse_EvaluateFilter(benchmark::State& state) { const style::Filter filter = parse(R"FILTER(["==", "foo", "bar"])FILTER"); const StubGeometryTileFeature feature = {{}, FeatureType::Unknown, {}, {{"foo", std::string("bar")}}}; const style::expression::EvaluationContext context(&feature); while (state.KeepRunning()) { filter(context); } } BENCHMARK(Parse_Filter); BENCHMARK(Parse_EvaluateFilter);