Use simdjson::builtin instead of haswell/begin+end
This commit is contained in:
parent
85cefd5a00
commit
30fe86ed32
|
@ -7,10 +7,6 @@ SIMDJSON_PUSH_DISABLE_ALL_WARNINGS
|
||||||
#include <benchmark/benchmark.h>
|
#include <benchmark/benchmark.h>
|
||||||
SIMDJSON_POP_DISABLE_WARNINGS
|
SIMDJSON_POP_DISABLE_WARNINGS
|
||||||
|
|
||||||
#if SIMDJSON_IMPLEMENTATION_HASWELL
|
|
||||||
#include "simdjson/haswell/begin.h"
|
|
||||||
#endif // SIMDJSON_IMPLEMENTATION_HASWELL
|
|
||||||
|
|
||||||
#include "partial_tweets/ondemand.h"
|
#include "partial_tweets/ondemand.h"
|
||||||
#include "partial_tweets/iter.h"
|
#include "partial_tweets/iter.h"
|
||||||
#include "partial_tweets/dom.h"
|
#include "partial_tweets/dom.h"
|
||||||
|
@ -24,7 +20,3 @@ SIMDJSON_POP_DISABLE_WARNINGS
|
||||||
#include "kostya/dom.h"
|
#include "kostya/dom.h"
|
||||||
|
|
||||||
BENCHMARK_MAIN();
|
BENCHMARK_MAIN();
|
||||||
|
|
||||||
#if SIMDJSON_IMPLEMENTATION_HASWELL
|
|
||||||
#include "simdjson/haswell/end.h"
|
|
||||||
#endif // SIMDJSON_IMPLEMENTATION_HASWELL
|
|
||||||
|
|
|
@ -8,16 +8,7 @@ SIMDJSON_PUSH_DISABLE_ALL_WARNINGS
|
||||||
#include <benchmark/benchmark.h>
|
#include <benchmark/benchmark.h>
|
||||||
SIMDJSON_POP_DISABLE_WARNINGS
|
SIMDJSON_POP_DISABLE_WARNINGS
|
||||||
|
|
||||||
|
|
||||||
#if SIMDJSON_IMPLEMENTATION_HASWELL
|
|
||||||
#include "simdjson/haswell/begin.h"
|
|
||||||
#endif // SIMDJSON_IMPLEMENTATION_HASWELL
|
|
||||||
|
|
||||||
#include "partial_tweets/sax.h"
|
#include "partial_tweets/sax.h"
|
||||||
#include "largerandom/sax.h"
|
#include "largerandom/sax.h"
|
||||||
|
|
||||||
BENCHMARK_MAIN();
|
BENCHMARK_MAIN();
|
||||||
|
|
||||||
#if SIMDJSON_IMPLEMENTATION_HASWELL
|
|
||||||
#include "simdjson/haswell/end.h"
|
|
||||||
#endif // SIMDJSON_IMPLEMENTATION_HASWELL
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef SIMDJSON_IMPLEMENTATION
|
|
||||||
#if SIMDJSON_EXCEPTIONS
|
#if SIMDJSON_EXCEPTIONS
|
||||||
|
|
||||||
#include "kostya.h"
|
#include "kostya.h"
|
||||||
|
@ -8,7 +7,7 @@
|
||||||
namespace kostya {
|
namespace kostya {
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace simdjson::SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
|
|
||||||
class Iter {
|
class Iter {
|
||||||
public:
|
public:
|
||||||
|
@ -21,12 +20,12 @@ private:
|
||||||
ondemand::parser parser{};
|
ondemand::parser parser{};
|
||||||
std::vector<my_point> container{};
|
std::vector<my_point> container{};
|
||||||
|
|
||||||
simdjson_really_inline simdjson_result<double> first_double(SIMDJSON_IMPLEMENTATION::ondemand::json_iterator &iter, const char *key) {
|
simdjson_really_inline simdjson_result<double> first_double(ondemand::json_iterator &iter, const char *key) {
|
||||||
if (!iter.start_object() || ondemand::raw_json_string(iter.field_key()) != key || iter.field_value()) { throw "Invalid field"; }
|
if (!iter.start_object() || ondemand::raw_json_string(iter.field_key()) != key || iter.field_value()) { throw "Invalid field"; }
|
||||||
return iter.get_double();
|
return iter.get_double();
|
||||||
}
|
}
|
||||||
|
|
||||||
simdjson_really_inline simdjson_result<double> next_double(SIMDJSON_IMPLEMENTATION::ondemand::json_iterator &iter, const char *key) {
|
simdjson_really_inline simdjson_result<double> next_double(ondemand::json_iterator &iter, const char *key) {
|
||||||
if (!iter.has_next_field() || ondemand::raw_json_string(iter.field_key()) != key || iter.field_value()) { throw "Invalid field"; }
|
if (!iter.has_next_field() || ondemand::raw_json_string(iter.field_key()) != key || iter.field_value()) { throw "Invalid field"; }
|
||||||
return iter.get_double();
|
return iter.get_double();
|
||||||
}
|
}
|
||||||
|
@ -95,4 +94,3 @@ BENCHMARK_TEMPLATE(KostyaSum, Iter);
|
||||||
} // namespace kostya
|
} // namespace kostya
|
||||||
|
|
||||||
#endif // SIMDJSON_EXCEPTIONS
|
#endif // SIMDJSON_EXCEPTIONS
|
||||||
#endif // SIMDJSON_IMPLEMENTATION
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef SIMDJSON_IMPLEMENTATION
|
|
||||||
#if SIMDJSON_EXCEPTIONS
|
#if SIMDJSON_EXCEPTIONS
|
||||||
|
|
||||||
#include "kostya.h"
|
#include "kostya.h"
|
||||||
|
@ -8,7 +7,7 @@
|
||||||
namespace kostya {
|
namespace kostya {
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace simdjson::SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
|
|
||||||
class OnDemand {
|
class OnDemand {
|
||||||
public:
|
public:
|
||||||
|
@ -75,4 +74,3 @@ BENCHMARK_TEMPLATE(KostyaSum, OnDemand);
|
||||||
} // namespace kostya
|
} // namespace kostya
|
||||||
|
|
||||||
#endif // SIMDJSON_EXCEPTIONS
|
#endif // SIMDJSON_EXCEPTIONS
|
||||||
#endif // SIMDJSON_IMPLEMENTATION
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef SIMDJSON_IMPLEMENTATION
|
|
||||||
#if SIMDJSON_EXCEPTIONS
|
#if SIMDJSON_EXCEPTIONS
|
||||||
|
|
||||||
#include "largerandom.h"
|
#include "largerandom.h"
|
||||||
|
@ -8,7 +7,7 @@
|
||||||
namespace largerandom {
|
namespace largerandom {
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace simdjson::SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
|
|
||||||
class Iter {
|
class Iter {
|
||||||
public:
|
public:
|
||||||
|
@ -21,12 +20,12 @@ private:
|
||||||
ondemand::parser parser{};
|
ondemand::parser parser{};
|
||||||
std::vector<my_point> container{};
|
std::vector<my_point> container{};
|
||||||
|
|
||||||
simdjson_really_inline double first_double(SIMDJSON_IMPLEMENTATION::ondemand::json_iterator &iter) {
|
simdjson_really_inline double first_double(ondemand::json_iterator &iter) {
|
||||||
if (iter.start_object().error() || iter.field_key().error() || iter.field_value()) { throw "Invalid field"; }
|
if (iter.start_object().error() || iter.field_key().error() || iter.field_value()) { throw "Invalid field"; }
|
||||||
return iter.get_double();
|
return iter.get_double();
|
||||||
}
|
}
|
||||||
|
|
||||||
simdjson_really_inline double next_double(SIMDJSON_IMPLEMENTATION::ondemand::json_iterator &iter) {
|
simdjson_really_inline double next_double(ondemand::json_iterator &iter) {
|
||||||
if (!iter.has_next_field() || iter.field_key().error() || iter.field_value()) { throw "Invalid field"; }
|
if (!iter.has_next_field() || iter.field_key().error() || iter.field_value()) { throw "Invalid field"; }
|
||||||
return iter.get_double();
|
return iter.get_double();
|
||||||
}
|
}
|
||||||
|
@ -91,4 +90,3 @@ BENCHMARK_TEMPLATE(LargeRandomSum, Iter);
|
||||||
} // namespace largerandom
|
} // namespace largerandom
|
||||||
|
|
||||||
#endif // SIMDJSON_EXCEPTIONS
|
#endif // SIMDJSON_EXCEPTIONS
|
||||||
#endif // SIMDJSON_IMPLEMENTATION
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef SIMDJSON_IMPLEMENTATION
|
|
||||||
#if SIMDJSON_EXCEPTIONS
|
#if SIMDJSON_EXCEPTIONS
|
||||||
|
|
||||||
#include "largerandom.h"
|
#include "largerandom.h"
|
||||||
|
@ -8,7 +7,7 @@
|
||||||
namespace largerandom {
|
namespace largerandom {
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace simdjson::SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
|
|
||||||
class OnDemand {
|
class OnDemand {
|
||||||
public:
|
public:
|
||||||
|
@ -72,4 +71,3 @@ BENCHMARK_TEMPLATE(LargeRandomSum, OnDemand);
|
||||||
} // namespace largerandom
|
} // namespace largerandom
|
||||||
|
|
||||||
#endif // SIMDJSON_EXCEPTIONS
|
#endif // SIMDJSON_EXCEPTIONS
|
||||||
#endif // SIMDJSON_IMPLEMENTATION
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef SIMDJSON_IMPLEMENTATION
|
|
||||||
#if SIMDJSON_EXCEPTIONS
|
#if SIMDJSON_EXCEPTIONS
|
||||||
|
|
||||||
#include "largerandom.h"
|
#include "largerandom.h"
|
||||||
|
@ -8,8 +7,8 @@
|
||||||
namespace largerandom {
|
namespace largerandom {
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
using namespace SIMDJSON_IMPLEMENTATION::stage2;
|
using namespace simdjson::builtin::stage2;
|
||||||
|
|
||||||
class Sax {
|
class Sax {
|
||||||
public:
|
public:
|
||||||
|
@ -28,8 +27,8 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
using namespace SIMDJSON_IMPLEMENTATION::stage2;
|
using namespace simdjson::builtin::stage2;
|
||||||
struct sax_point_reader_visitor {
|
struct sax_point_reader_visitor {
|
||||||
public:
|
public:
|
||||||
std::vector<my_point> &points;
|
std::vector<my_point> &points;
|
||||||
|
@ -123,4 +122,3 @@ BENCHMARK_TEMPLATE(LargeRandom, Sax);
|
||||||
} // namespace largerandom
|
} // namespace largerandom
|
||||||
|
|
||||||
#endif // SIMDJSON_EXCEPTIONS
|
#endif // SIMDJSON_EXCEPTIONS
|
||||||
#endif // SIMDJSON_IMPLEMENTATION
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef SIMDJSON_IMPLEMENTATION
|
|
||||||
#if SIMDJSON_EXCEPTIONS
|
#if SIMDJSON_EXCEPTIONS
|
||||||
|
|
||||||
#include "partial_tweets.h"
|
#include "partial_tweets.h"
|
||||||
|
@ -8,7 +7,7 @@
|
||||||
namespace partial_tweets {
|
namespace partial_tweets {
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace simdjson::SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
|
|
||||||
class Iter {
|
class Iter {
|
||||||
public:
|
public:
|
||||||
|
@ -92,4 +91,3 @@ BENCHMARK_TEMPLATE(PartialTweets, Iter);
|
||||||
} // namespace partial_tweets
|
} // namespace partial_tweets
|
||||||
|
|
||||||
#endif // SIMDJSON_EXCEPTIONS
|
#endif // SIMDJSON_EXCEPTIONS
|
||||||
#endif // SIMDJSON_IMPLEMENTATION
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef SIMDJSON_IMPLEMENTATION
|
|
||||||
#if SIMDJSON_EXCEPTIONS
|
#if SIMDJSON_EXCEPTIONS
|
||||||
|
|
||||||
#include "partial_tweets.h"
|
#include "partial_tweets.h"
|
||||||
|
@ -8,7 +7,7 @@
|
||||||
namespace partial_tweets {
|
namespace partial_tweets {
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace simdjson::SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
|
|
||||||
class OnDemand {
|
class OnDemand {
|
||||||
public:
|
public:
|
||||||
|
@ -57,4 +56,3 @@ BENCHMARK_TEMPLATE(PartialTweets, OnDemand);
|
||||||
} // namespace partial_tweets
|
} // namespace partial_tweets
|
||||||
|
|
||||||
#endif // SIMDJSON_EXCEPTIONS
|
#endif // SIMDJSON_EXCEPTIONS
|
||||||
#endif // SIMDJSON_IMPLEMENTATION
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef SIMDJSON_IMPLEMENTATION
|
|
||||||
|
|
||||||
#include "partial_tweets.h"
|
#include "partial_tweets.h"
|
||||||
#include "sax_tweet_reader_visitor.h"
|
#include "sax_tweet_reader_visitor.h"
|
||||||
|
@ -8,8 +7,8 @@
|
||||||
namespace partial_tweets {
|
namespace partial_tweets {
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
using namespace SIMDJSON_IMPLEMENTATION::stage2;
|
using namespace simdjson::builtin::stage2;
|
||||||
|
|
||||||
class Sax {
|
class Sax {
|
||||||
public:
|
public:
|
||||||
|
@ -68,4 +67,3 @@ BENCHMARK_TEMPLATE(PartialTweets, Sax);
|
||||||
|
|
||||||
} // namespace partial_tweets
|
} // namespace partial_tweets
|
||||||
|
|
||||||
#endif // SIMDJSON_IMPLEMENTATION
|
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
namespace partial_tweets {
|
namespace partial_tweets {
|
||||||
|
|
||||||
using namespace simdjson;
|
using namespace simdjson;
|
||||||
using namespace SIMDJSON_IMPLEMENTATION;
|
using namespace simdjson::builtin;
|
||||||
using namespace SIMDJSON_IMPLEMENTATION::stage2;
|
using namespace simdjson::builtin::stage2;
|
||||||
|
|
||||||
struct sax_tweet_reader_visitor {
|
struct sax_tweet_reader_visitor {
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in New Issue