Skip to content

Commit 4f94ea0

Browse files
committed
Update libraries to latest on vcpkg, add taojson
1 parent 83041d6 commit 4f94ea0

10 files changed

+24
-96
lines changed

report/performance.md

+8-32
Original file line numberDiff line numberDiff line change
@@ -25,36 +25,12 @@ Library|Version
2525

2626
Library|Time to read (s)|Time to write (s)|Memory footprint of json value (MB)|Remarks
2727
---|---|---|---|---
28-
[jsoncons](https://github.com/danielaparker/jsoncons)|9.18|3.66|2057|
29-
Uses sorted `std::vector` of key/value pairs for objects, expect smaller memory footprint.
30-
Uses slightly modified [grisu3_59_56 implementation by Florian Loitsch](https://florian.loitsch.com/publications)
31-
plus fallback for printing doubles, expect faster serializing.
32-
33-
[nlohmann](https://github.com/nlohmann/json)|22.906|13.124|2216|
34-
Uses `std::map` for objects.
35-
Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
36-
37-
[cJSON](https://github.com/DaveGamble/cJSON)|28.031|76.624|11033|
38-
Inefficient storage (items do not share the same space), expect larger memory footprint.
39-
Uses sprintf and sscanf to support locale-independent round-trip.
40-
41-
[json11](https://github.com/dropbox/json11)|32.719|15.815|9169|
42-
Uses pimpl idiom, implementation uses virtual inheritance, expect larger memory footprint.
43-
44-
[rapidjson](https://github.com/miloyip/rapidjson)|9.316|2.044|2167|
45-
Uses custom floating point parsing, expect faster parsing.
46-
Uses girsu3 for printing doubles, expect faster serializing.
47-
Uses custom allocation and flat map for objects, expect smaller memory footprint.
48-
49-
[jsoncpp](https://github.com/open-source-parsers/jsoncpp)|59.1|26.169|12175|
50-
Uses std::map for both arrays and objects, expect larger memory footprint.
51-
52-
[json_spirit](http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implemented)|356.577|49.88|5193|
53-
Uses Boost spirit parsing, expect slower parsing.
54-
55-
[taojson](https://github.com/taocpp/json)|51.326|12.433|5198|
56-
Uses modified [google/double conversion](https://github.com/google/double-conversion) routines for parsing doubles.
57-
Uses modified [jeaiii/itoa](https://github.com/jeaiii/itoa) routines for outputting integers.
58-
Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
59-
28+
[jsoncons](https://github.com/danielaparker/jsoncons)|8.807|3.379|2057|Uses sorted `std::vector` of key/value pairs for objects, expect smaller memory footprint.Uses slightly modified [grisu3_59_56 implementation by Florian Loitsch](https://florian.loitsch.com/publications) plus fallback for printing doubles, expect faster serializing.
29+
[nlohmann](https://github.com/nlohmann/json)|21.316|12.78|2216|Uses `std::map` for objects. Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
30+
[cJSON](https://github.com/DaveGamble/cJSON)|27.618|77.434|11033|Inefficient storage (items do not share the same space), expect larger memory footprint. Uses sprintf and sscanf to support locale-independent round-trip.
31+
[json11](https://github.com/dropbox/json11)|39.011|15.646|9184|Uses pimpl idiom, implementation uses virtual inheritance, expect larger memory footprint.
32+
[rapidjson](https://github.com/miloyip/rapidjson)|8.416|2.06|2167|Uses custom floating point parsing, expect faster parsing. Uses girsu3 for printing doubles, expect faster serializing. Uses custom allocation and flat map for objects, expect smaller memory footprint.
33+
[jsoncpp](https://github.com/open-source-parsers/jsoncpp)|59.102|25.806|12176|Uses std::map for both arrays and objects, expect larger memory footprint.
34+
[json_spirit](http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implemented)|358.12|49.198|5161|Uses Boost spirit parsing, expect slower parsing.
35+
[taojson](https://github.com/taocpp/json)|48.969|12.276|5197|Uses modified [google/double conversion](https://github.com/google/double-conversion) routines for parsing doubles. Uses modified [jeaiii/itoa](https://github.com/jeaiii/itoa) routines for outputting integers. Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
6036

report/performance_fp.md

+8-32
Original file line numberDiff line numberDiff line change
@@ -25,36 +25,12 @@ Library|Version
2525

2626
Library|Time to read (s)|Time to write (s)|Memory footprint of json value (MB)|Remarks
2727
---|---|---|---|---
28-
[jsoncons](https://github.com/danielaparker/jsoncons)|16.39|8.161|1057|
29-
Uses sorted `std::vector` of key/value pairs for objects, expect smaller memory footprint.
30-
Uses slightly modified [grisu3_59_56 implementation by Florian Loitsch](https://florian.loitsch.com/publications)
31-
plus fallback for printing doubles, expect faster serializing.
32-
33-
[nlohmann](https://github.com/nlohmann/json)|19.987|14.841|1236|
34-
Uses `std::map` for objects.
35-
Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
36-
37-
[cJSON](https://github.com/DaveGamble/cJSON)|19.606|51.287|5813|
38-
Inefficient storage (items do not share the same space), expect larger memory footprint.
39-
Uses sprintf and sscanf to support locale-independent round-trip.
40-
41-
[json11](https://github.com/dropbox/json11)|19.097|34.488|4918|
42-
Uses pimpl idiom, implementation uses virtual inheritance, expect larger memory footprint.
43-
44-
[rapidjson](https://github.com/miloyip/rapidjson)|4.155|5.401|1098|
45-
Uses custom floating point parsing, expect faster parsing.
46-
Uses girsu3 for printing doubles, expect faster serializing.
47-
Uses custom allocation and flat map for objects, expect smaller memory footprint.
48-
49-
[jsoncpp](https://github.com/open-source-parsers/jsoncpp)|84.761|47.614|6164|
50-
Uses std::map for both arrays and objects, expect larger memory footprint.
51-
52-
[json_spirit](http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implemented)|263.005|60.941|2603|
53-
Uses Boost spirit parsing, expect slower parsing.
54-
55-
[taojson](https://github.com/taocpp/json)|24.671|10.341|2712|
56-
Uses modified [google/double conversion](https://github.com/google/double-conversion) routines for parsing doubles.
57-
Uses modified [jeaiii/itoa](https://github.com/jeaiii/itoa) routines for outputting integers.
58-
Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
59-
28+
[jsoncons](https://github.com/danielaparker/jsoncons)|15.176|8.579|1057|Uses sorted `std::vector` of key/value pairs for objects, expect smaller memory footprint.Uses slightly modified [grisu3_59_56 implementation by Florian Loitsch](https://florian.loitsch.com/publications) plus fallback for printing doubles, expect faster serializing.
29+
[nlohmann](https://github.com/nlohmann/json)|20.824|15.675|1236|Uses `std::map` for objects. Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
30+
[cJSON](https://github.com/DaveGamble/cJSON)|19.712|51.64|5813|Inefficient storage (items do not share the same space), expect larger memory footprint. Uses sprintf and sscanf to support locale-independent round-trip.
31+
[json11](https://github.com/dropbox/json11)|19.41|34.643|4911|Uses pimpl idiom, implementation uses virtual inheritance, expect larger memory footprint.
32+
[rapidjson](https://github.com/miloyip/rapidjson)|4.266|5.449|1097|Uses custom floating point parsing, expect faster parsing. Uses girsu3 for printing doubles, expect faster serializing. Uses custom allocation and flat map for objects, expect smaller memory footprint.
33+
[jsoncpp](https://github.com/open-source-parsers/jsoncpp)|85.473|47.842|6163|Uses std::map for both arrays and objects, expect larger memory footprint.
34+
[json_spirit](http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implemented)|264.739|61.661|2739|Uses Boost spirit parsing, expect slower parsing.
35+
[taojson](https://github.com/taocpp/json)|24.819|10.405|2712|Uses modified [google/double conversion](https://github.com/google/double-conversion) routines for parsing doubles. Uses modified [jeaiii/itoa](https://github.com/jeaiii/itoa) routines for outputting integers. Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
6036

src/tests/cjson_tests.cpp

+1-4
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,7 @@ measurements cjson_benchmarks::measure_big(const char *input_filename, const cha
133133

134134
const std::string& cjson_benchmarks::remarks() const
135135
{
136-
static const std::string s = R"abc(
137-
Inefficient storage (items do not share the same space), expect larger memory footprint.
138-
Uses sprintf and sscanf to support locale-independent round-trip.
139-
)abc";
136+
static const std::string s = R"abc(Inefficient storage (items do not share the same space), expect larger memory footprint. Uses sprintf and sscanf to support locale-independent round-trip.)abc";
140137

141138
return s;
142139
}

src/tests/json11_tests.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,7 @@ measurements json11_benchmarks::measure_big(const char *input_filename, const ch
125125

126126
const std::string& json11_benchmarks::remarks() const
127127
{
128-
static const std::string s = R"abc(
129-
Uses pimpl idiom, implementation uses virtual inheritance, expect larger memory footprint.
130-
)abc";
128+
static const std::string s = R"abc(Uses pimpl idiom, implementation uses virtual inheritance, expect larger memory footprint.)abc";
131129

132130
return s;
133131
}

src/tests/json_spirit_tests.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,7 @@ measurements json_spirit_benchmarks::measure_big(const char *input_filename, con
117117

118118
const std::string& json_spirit_benchmarks::remarks() const
119119
{
120-
static const std::string s = R"abc(
121-
Uses Boost spirit parsing, expect slower parsing.
122-
)abc";
120+
static const std::string s = R"abc(Uses Boost spirit parsing, expect slower parsing.)abc";
123121

124122
return s;
125123
}

src/tests/jsoncons_tests.cpp

+1-5
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,7 @@ measurements jsoncons_benchmarks::measure_big(const char *input_filename, const
112112

113113
const std::string& jsoncons_benchmarks::remarks() const
114114
{
115-
static const std::string s = R"abc(
116-
Uses sorted `std::vector` of key/value pairs for objects, expect smaller memory footprint.
117-
Uses slightly modified [grisu3_59_56 implementation by Florian Loitsch](https://florian.loitsch.com/publications)
118-
plus fallback for printing doubles, expect faster serializing.
119-
)abc";
115+
static const std::string s = R"abc(Uses sorted `std::vector` of key/value pairs for objects, expect smaller memory footprint.Uses slightly modified [grisu3_59_56 implementation by Florian Loitsch](https://florian.loitsch.com/publications) plus fallback for printing doubles, expect faster serializing.)abc";
120116

121117
return s;
122118
}

src/tests/jsoncpp_tests.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,7 @@ measurements jsoncpp_benchmarks::measure_big(const char *input_filename, const c
131131

132132
const std::string& jsoncpp_benchmarks::remarks() const
133133
{
134-
static const std::string s = R"abc(
135-
Uses std::map for both arrays and objects, expect larger memory footprint.
136-
)abc";
134+
static const std::string s = R"abc(Uses std::map for both arrays and objects, expect larger memory footprint.)abc";
137135

138136
return s;
139137
}

src/tests/nlohmann_tests.cpp

+1-4
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,7 @@ measurements nlohmann_benchmarks::measure_big(const char *input_filename, const
109109

110110
const std::string& nlohmann_benchmarks::remarks() const
111111
{
112-
static const std::string s = R"abc(
113-
Uses `std::map` for objects.
114-
Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
115-
)abc";
112+
static const std::string s = R"abc(Uses `std::map` for objects. Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.)abc";
116113

117114
return s;
118115
}

src/tests/rapidjson_tests.cpp

+1-5
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,7 @@ measurements rapidjson_benchmarks::measure_big(const char *input_filename, const
151151

152152
const std::string& rapidjson_benchmarks::remarks() const
153153
{
154-
static const std::string s = R"abc(
155-
Uses custom floating point parsing, expect faster parsing.
156-
Uses girsu3 for printing doubles, expect faster serializing.
157-
Uses custom allocation and flat map for objects, expect smaller memory footprint.
158-
)abc";
154+
static const std::string s = R"abc(Uses custom floating point parsing, expect faster parsing. Uses girsu3 for printing doubles, expect faster serializing. Uses custom allocation and flat map for objects, expect smaller memory footprint.)abc";
159155

160156
return s;
161157
}

src/tests/taojson_tests.cpp

+1-5
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,7 @@ measurements taojson_benchmarks::measure_big(const char *input_filename, const c
114114

115115
const std::string& taojson_benchmarks::remarks() const
116116
{
117-
static const std::string s = R"abc(
118-
Uses modified [google/double conversion](https://github.com/google/double-conversion) routines for parsing doubles.
119-
Uses modified [jeaiii/itoa](https://github.com/jeaiii/itoa) routines for outputting integers.
120-
Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.
121-
)abc";
117+
static const std::string s = R"abc(Uses modified [google/double conversion](https://github.com/google/double-conversion) routines for parsing doubles. Uses modified [jeaiii/itoa](https://github.com/jeaiii/itoa) routines for outputting integers. Uses slightly modified [Grisu2 implementation by Florian Loitsch](https://florian.loitsch.com/publications) for printing doubles, expect faster serializing.)abc";
122118

123119
return s;
124120
}

0 commit comments

Comments
 (0)