Skip to content

Instantly share code, notes, and snippets.

@mswilson
Created December 9, 2019 00:07
Show Gist options
  • Save mswilson/1bac27641208e3ec5db7fc1df43ade84 to your computer and use it in GitHub Desktop.
Save mswilson/1bac27641208e3ec5db7fc1df43ade84 to your computer and use it in GitHub Desktop.
simdjson parser.sh run on m5.12xlarge on Ubuntu Bionic ami-00a208c7cdba991ea
ubuntu@ip-10-0-2-210:~/simdjson/benchmark$ ../scripts/parser.sh
In case of build error due to missing files, try 'make clean'
g++ -msse4.2 -mpclmul -std=c++17 -pthread -Wall -Wextra -Wshadow -Iinclude -Isrc -Ibenchmark/linux -O3 -o parsingcompetition src/jsonioutil.cpp src/jsonparser.cpp src/jsonstream.cpp src/simdjson.cpp src/stage1_find_marks.cpp src/stage2_build_tape.cpp src/parsedjson.cpp src/parsedjsoniterator.cpp benchmark/parsingcompetition.cpp -I. -Idependencies/json/single_include -Idependencies/rapidjson/include -Idependencies/sajson/include -Idependencies/cJSON -Idependencies/jsmn
In file included from benchmark/parsingcompetition.cpp:22:0:
dependencies/sajson/include/sajson.h: In member function ‘sajson::dynamic_allocation::allocator sajson::dynamic_allocation::make_allocator(size_t, bool*) const’:
dependencies/sajson/include/sajson.h:1313:41: warning: unused parameter ‘input_document_size_in_bytes’ [-Wunused-parameter]
allocator make_allocator(size_t input_document_size_in_bytes, bool* succeeded) const {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
dependencies/sajson/include/sajson.h: In member function ‘sajson::bounded_allocation::allocator sajson::bounded_allocation::make_allocator(size_t, bool*) const’:
dependencies/sajson/include/sajson.h:1504:41: warning: unused parameter ‘input_document_size_in_bytes’ [-Wunused-parameter]
allocator make_allocator(size_t input_document_size_in_bytes, bool* succeeded) const {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ubuntu/simdjson/scripts/../jsonexamples/apache_builds.json
getline : 1.992 cycles per input byte (best) 2.072 cycles per input byte (avg) 1.235 GB/s (error margin: 0.048 GB/s)
simdjson (dynamic mem) : 1.522 cycles per input byte (best) 1.559 cycles per input byte (avg) 1.607 GB/s (error margin: 0.039 GB/s)
simdjson : 1.522 cycles per input byte (best) 1.558 cycles per input byte (avg) 1.607 GB/s (error margin: 0.037 GB/s)
RapidJSON : 6.520 cycles per input byte (best) 7.151 cycles per input byte (avg) 0.381 GB/s (error margin: 0.033 GB/s)
RapidJSON (insitu) : 6.843 cycles per input byte (best) 7.036 cycles per input byte (avg) 0.363 GB/s (error margin: 0.010 GB/s)
sajson (dynamic mem) : 2.796 cycles per input byte (best) 2.880 cycles per input byte (avg) 0.883 GB/s (error margin: 0.026 GB/s)
sajson : 2.280 cycles per input byte (best) 2.349 cycles per input byte (avg) 1.080 GB/s (error margin: 0.032 GB/s)
nlohmann-json : 25.925 cycles per input byte (best) 26.559 cycles per input byte (avg) 0.096 GB/s (error margin: 0.002 GB/s)
memcpy : 0.057 cycles per input byte (best) 0.062 cycles per input byte (avg) 27.596 GB/s (error margin: 1.859 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 272566 instructions 996010 branchmisses 138 cacheref 13 cachemisses 4 bytespercachemiss 924 inspercycle 3.7 insperbyte 7.8
RapidJSON: cycles 1107697 instructions 2768475 branchmisses 4510 cacheref 252 cachemisses 1 bytespercachemiss 28 inspercycle 2.5 insperbyte 21.8
sajson : cycles 413433 instructions 1269549 branchmisses 1795 cacheref 9 cachemisses 3 bytespercachemiss 71 inspercycle 3.1 insperbyte 10.0
/home/ubuntu/simdjson/scripts/../jsonexamples/canada.json
getline : 0.282 cycles per input byte (best) 0.373 cycles per input byte (avg) 8.771 GB/s (error margin: 2.122 GB/s)
simdjson (dynamic mem) : 3.159 cycles per input byte (best) 3.572 cycles per input byte (avg) 0.791 GB/s (error margin: 0.091 GB/s)
simdjson : 3.159 cycles per input byte (best) 3.406 cycles per input byte (avg) 0.791 GB/s (error margin: 0.057 GB/s)
RapidJSON : 6.533 cycles per input byte (best) 7.087 cycles per input byte (avg) 0.383 GB/s (error margin: 0.030 GB/s)
RapidJSON (insitu) : 6.329 cycles per input byte (best) 6.445 cycles per input byte (avg) 0.395 GB/s (error margin: 0.007 GB/s)
sajson (dynamic mem) : 6.061 cycles per input byte (best) 6.508 cycles per input byte (avg) 0.412 GB/s (error margin: 0.028 GB/s)
sajson : 4.639 cycles per input byte (best) 4.852 cycles per input byte (avg) 0.539 GB/s (error margin: 0.024 GB/s)
nlohmann-json : 50.834 cycles per input byte (best) 50.996 cycles per input byte (avg) 0.049 GB/s (error margin: 0.000 GB/s)
memcpy : 0.189 cycles per input byte (best) 0.196 cycles per input byte (avg) 13.027 GB/s (error margin: 0.455 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 9970412 instructions 32551608 branchmisses 19819 cacheref 155012 cachemisses 8295 bytespercachemiss 114 inspercycle 3.3 insperbyte 14.5
RapidJSON: cycles 16310230 instructions 56295839 branchmisses 13610 cacheref 56008 cachemisses 813 bytespercachemiss 165 inspercycle 3.5 insperbyte 25.0
sajson : cycles 14628586 instructions 47409949 branchmisses 11710 cacheref 80664 cachemisses 3320 bytespercachemiss 192 inspercycle 3.2 insperbyte 21.1
/home/ubuntu/simdjson/scripts/../jsonexamples/citm_catalog.json
getline : 1.724 cycles per input byte (best) 1.816 cycles per input byte (avg) 1.448 GB/s (error margin: 0.073 GB/s)
simdjson (dynamic mem) : 1.314 cycles per input byte (best) 1.544 cycles per input byte (avg) 1.898 GB/s (error margin: 0.283 GB/s)
simdjson : 1.315 cycles per input byte (best) 1.451 cycles per input byte (avg) 1.896 GB/s (error margin: 0.178 GB/s)
RapidJSON : 2.923 cycles per input byte (best) 3.366 cycles per input byte (avg) 0.854 GB/s (error margin: 0.112 GB/s)
RapidJSON (insitu) : 3.411 cycles per input byte (best) 3.591 cycles per input byte (avg) 0.732 GB/s (error margin: 0.037 GB/s)
sajson (dynamic mem) : 2.582 cycles per input byte (best) 2.792 cycles per input byte (avg) 0.966 GB/s (error margin: 0.072 GB/s)
sajson : 2.162 cycles per input byte (best) 2.338 cycles per input byte (avg) 1.154 GB/s (error margin: 0.087 GB/s)
nlohmann-json : 18.892 cycles per input byte (best) 19.003 cycles per input byte (avg) 0.132 GB/s (error margin: 0.001 GB/s)
memcpy : 0.182 cycles per input byte (best) 0.189 cycles per input byte (avg) 13.493 GB/s (error margin: 0.529 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 3197534 instructions 11904270 branchmisses 1917 cacheref 89567 cachemisses 426 bytespercachemiss 901 inspercycle 3.7 insperbyte 6.9
RapidJSON: cycles 7248058 instructions 18893783 branchmisses 24142 cacheref 51470 cachemisses 52 bytespercachemiss 72 inspercycle 2.6 insperbyte 10.9
sajson : cycles 5343074 instructions 18355941 branchmisses 5936 cacheref 43435 cachemisses 53 bytespercachemiss 291 inspercycle 3.4 insperbyte 10.6
/home/ubuntu/simdjson/scripts/../jsonexamples/github_events.json
getline : 1.506 cycles per input byte (best) 1.568 cycles per input byte (avg) 1.591 GB/s (error margin: 0.062 GB/s)
simdjson (dynamic mem) : 1.390 cycles per input byte (best) 1.429 cycles per input byte (avg) 1.718 GB/s (error margin: 0.048 GB/s)
simdjson : 1.381 cycles per input byte (best) 1.418 cycles per input byte (avg) 1.729 GB/s (error margin: 0.045 GB/s)
RapidJSON : 6.672 cycles per input byte (best) 7.273 cycles per input byte (avg) 0.371 GB/s (error margin: 0.030 GB/s)
RapidJSON (insitu) : 6.492 cycles per input byte (best) 6.756 cycles per input byte (avg) 0.381 GB/s (error margin: 0.015 GB/s)
sajson (dynamic mem) : 2.903 cycles per input byte (best) 3.013 cycles per input byte (avg) 0.841 GB/s (error margin: 0.031 GB/s)
sajson : 2.589 cycles per input byte (best) 2.689 cycles per input byte (avg) 0.941 GB/s (error margin: 0.035 GB/s)
nlohmann-json : 27.603 cycles per input byte (best) 28.425 cycles per input byte (avg) 0.090 GB/s (error margin: 0.003 GB/s)
memcpy : 0.057 cycles per input byte (best) 0.061 cycles per input byte (avg) 20.683 GB/s (error margin: 1.216 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 127408 instructions 454720 branchmisses 125 cacheref 7 cachemisses 2 bytespercachemiss 519 inspercycle 3.6 insperbyte 7.0
RapidJSON: cycles 560494 instructions 1373612 branchmisses 3440 cacheref 157 cachemisses 1 bytespercachemiss 19 inspercycle 2.5 insperbyte 21.1
sajson : cycles 254826 instructions 648534 branchmisses 2249 cacheref 3 cachemisses 1 bytespercachemiss 29 inspercycle 2.5 insperbyte 10.0
/home/ubuntu/simdjson/scripts/../jsonexamples/gsoc-2018.json
getline : 0.545 cycles per input byte (best) 0.578 cycles per input byte (avg) 4.571 GB/s (error margin: 0.260 GB/s)
simdjson (dynamic mem) : 1.132 cycles per input byte (best) 1.417 cycles per input byte (avg) 2.204 GB/s (error margin: 0.443 GB/s)
simdjson : 1.132 cycles per input byte (best) 1.289 cycles per input byte (avg) 2.205 GB/s (error margin: 0.270 GB/s)
RapidJSON : 5.408 cycles per input byte (best) 6.017 cycles per input byte (avg) 0.462 GB/s (error margin: 0.047 GB/s)
RapidJSON (insitu) : 5.136 cycles per input byte (best) 5.253 cycles per input byte (avg) 0.487 GB/s (error margin: 0.011 GB/s)
sajson (dynamic mem) : 2.229 cycles per input byte (best) 2.345 cycles per input byte (avg) 1.120 GB/s (error margin: 0.055 GB/s)
sajson : 2.109 cycles per input byte (best) 2.181 cycles per input byte (avg) 1.184 GB/s (error margin: 0.039 GB/s)
nlohmann-json : 22.930 cycles per input byte (best) 22.958 cycles per input byte (avg) 0.109 GB/s (error margin: 0.000 GB/s)
memcpy : 0.187 cycles per input byte (best) 0.193 cycles per input byte (avg) 13.207 GB/s (error margin: 0.381 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 5355737 instructions 17051906 branchmisses 20037 cacheref 168370 cachemisses 5948 bytespercachemiss 166 inspercycle 3.2 insperbyte 5.1
RapidJSON: cycles 23580897 instructions 69122947 branchmisses 61612 cacheref 79925 cachemisses 281 bytespercachemiss 54 inspercycle 2.9 insperbyte 20.8
sajson : cycles 9839942 instructions 35554430 branchmisses 36866 cacheref 66078 cachemisses 203 bytespercachemiss 90 inspercycle 3.6 insperbyte 10.7
/home/ubuntu/simdjson/scripts/../jsonexamples/instruments.json
getline : 2.177 cycles per input byte (best) 2.261 cycles per input byte (avg) 1.138 GB/s (error margin: 0.042 GB/s)
simdjson (dynamic mem) : 1.620 cycles per input byte (best) 1.659 cycles per input byte (avg) 1.524 GB/s (error margin: 0.035 GB/s)
simdjson : 1.613 cycles per input byte (best) 1.651 cycles per input byte (avg) 1.531 GB/s (error margin: 0.035 GB/s)
RapidJSON : 5.637 cycles per input byte (best) 6.657 cycles per input byte (avg) 0.442 GB/s (error margin: 0.067 GB/s)
RapidJSON (insitu) : 6.361 cycles per input byte (best) 6.529 cycles per input byte (avg) 0.392 GB/s (error margin: 0.010 GB/s)
sajson (dynamic mem) : 3.107 cycles per input byte (best) 3.230 cycles per input byte (avg) 0.800 GB/s (error margin: 0.031 GB/s)
sajson : 2.446 cycles per input byte (best) 2.542 cycles per input byte (avg) 1.014 GB/s (error margin: 0.038 GB/s)
nlohmann-json : 24.231 cycles per input byte (best) 25.115 cycles per input byte (avg) 0.103 GB/s (error margin: 0.004 GB/s)
memcpy : 0.092 cycles per input byte (best) 0.095 cycles per input byte (avg) 22.464 GB/s (error margin: 0.742 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 504785 instructions 1828232 branchmisses 704 cacheref 627 cachemisses 8 bytespercachemiss 313 inspercycle 3.6 insperbyte 8.3
RapidJSON: cycles 1704560 instructions 4024223 branchmisses 12253 cacheref 709 cachemisses 2 bytespercachemiss 18 inspercycle 2.4 insperbyte 18.3
sajson : cycles 796724 instructions 2717112 branchmisses 846 cacheref 370 cachemisses 7 bytespercachemiss 260 inspercycle 3.4 insperbyte 12.3
/home/ubuntu/simdjson/scripts/../jsonexamples/marine_ik.json
getline : 1.127 cycles per input byte (best) 1.187 cycles per input byte (avg) 2.213 GB/s (error margin: 0.110 GB/s)
simdjson (dynamic mem) : 3.644 cycles per input byte (best) 4.251 cycles per input byte (avg) 0.686 GB/s (error margin: 0.098 GB/s)
simdjson : 3.640 cycles per input byte (best) 3.981 cycles per input byte (avg) 0.686 GB/s (error margin: 0.059 GB/s)
RapidJSON : 6.805 cycles per input byte (best) 8.058 cycles per input byte (avg) 0.367 GB/s (error margin: 0.057 GB/s)
RapidJSON (insitu) : 7.745 cycles per input byte (best) 7.816 cycles per input byte (avg) 0.323 GB/s (error margin: 0.003 GB/s)
sajson (dynamic mem) : 6.003 cycles per input byte (best) 6.563 cycles per input byte (avg) 0.416 GB/s (error margin: 0.035 GB/s)
sajson : 4.335 cycles per input byte (best) 4.644 cycles per input byte (avg) 0.576 GB/s (error margin: 0.038 GB/s)
nlohmann-json : 40.924 cycles per input byte (best) 41.517 cycles per input byte (avg) 0.061 GB/s (error margin: 0.001 GB/s)
memcpy : 0.187 cycles per input byte (best) 0.192 cycles per input byte (avg) 13.226 GB/s (error margin: 0.383 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 15249376 instructions 45206606 branchmisses 56808 cacheref 256092 cachemisses 23079 bytespercachemiss 53 inspercycle 3.0 insperbyte 15.2
RapidJSON: cycles 25646809 instructions 69200252 branchmisses 107606 cacheref 150800 cachemisses 6666 bytespercachemiss 28 inspercycle 2.7 insperbyte 23.2
sajson : cycles 18194110 instructions 58459728 branchmisses 42874 cacheref 143981 cachemisses 17079 bytespercachemiss 70 inspercycle 3.2 insperbyte 19.6
/home/ubuntu/simdjson/scripts/../jsonexamples/mesh.json
getline : 0.135 cycles per input byte (best) 0.140 cycles per input byte (avg) 17.755 GB/s (error margin: 0.611 GB/s)
simdjson (dynamic mem) : 3.632 cycles per input byte (best) 3.729 cycles per input byte (avg) 0.687 GB/s (error margin: 0.018 GB/s)
simdjson : 3.626 cycles per input byte (best) 3.709 cycles per input byte (avg) 0.688 GB/s (error margin: 0.015 GB/s)
RapidJSON : 7.216 cycles per input byte (best) 8.624 cycles per input byte (avg) 0.346 GB/s (error margin: 0.056 GB/s)
RapidJSON (insitu) : 7.910 cycles per input byte (best) 8.098 cycles per input byte (avg) 0.316 GB/s (error margin: 0.007 GB/s)
sajson (dynamic mem) : 6.533 cycles per input byte (best) 6.697 cycles per input byte (avg) 0.382 GB/s (error margin: 0.009 GB/s)
sajson : 4.933 cycles per input byte (best) 5.047 cycles per input byte (avg) 0.506 GB/s (error margin: 0.011 GB/s)
nlohmann-json : 43.159 cycles per input byte (best) 43.542 cycles per input byte (avg) 0.058 GB/s (error margin: 0.001 GB/s)
memcpy : 0.108 cycles per input byte (best) 0.110 cycles per input byte (avg) 22.032 GB/s (error margin: 0.532 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 3693632 instructions 11466591 branchmisses 9743 cacheref 60996 cachemisses 48 bytespercachemiss 74 inspercycle 3.1 insperbyte 15.8
RapidJSON: cycles 6362688 instructions 19385862 branchmisses 12509 cacheref 28112 cachemisses 495 bytespercachemiss 58 inspercycle 3.0 insperbyte 26.8
sajson : cycles 5021691 instructions 15980837 branchmisses 10537 cacheref 34608 cachemisses 46 bytespercachemiss 69 inspercycle 3.2 insperbyte 22.1
/home/ubuntu/simdjson/scripts/../jsonexamples/mesh.pretty.json
getline : 2.564 cycles per input byte (best) 2.733 cycles per input byte (avg) 0.973 GB/s (error margin: 0.060 GB/s)
simdjson (dynamic mem) : 2.215 cycles per input byte (best) 2.520 cycles per input byte (avg) 1.127 GB/s (error margin: 0.136 GB/s)
simdjson : 2.214 cycles per input byte (best) 2.426 cycles per input byte (avg) 1.127 GB/s (error margin: 0.099 GB/s)
RapidJSON : 4.294 cycles per input byte (best) 4.926 cycles per input byte (avg) 0.581 GB/s (error margin: 0.074 GB/s)
RapidJSON (insitu) : 4.547 cycles per input byte (best) 4.675 cycles per input byte (avg) 0.549 GB/s (error margin: 0.015 GB/s)
sajson (dynamic mem) : 3.959 cycles per input byte (best) 4.307 cycles per input byte (avg) 0.631 GB/s (error margin: 0.051 GB/s)
sajson : 3.057 cycles per input byte (best) 3.244 cycles per input byte (avg) 0.817 GB/s (error margin: 0.047 GB/s)
nlohmann-json : 25.805 cycles per input byte (best) 26.008 cycles per input byte (avg) 0.097 GB/s (error margin: 0.001 GB/s)
memcpy : 0.178 cycles per input byte (best) 0.187 cycles per input byte (avg) 13.806 GB/s (error margin: 0.844 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 4893138 instructions 15437453 branchmisses 13865 cacheref 88344 cachemisses 221 bytespercachemiss 114 inspercycle 3.2 insperbyte 9.8
RapidJSON: cycles 8556168 instructions 25384814 branchmisses 35184 cacheref 40332 cachemisses 32 bytespercachemiss 45 inspercycle 3.0 insperbyte 16.1
sajson : cycles 6915834 instructions 22001687 branchmisses 16353 cacheref 49549 cachemisses 51 bytespercachemiss 96 inspercycle 3.2 insperbyte 13.9
/home/ubuntu/simdjson/scripts/../jsonexamples/numbers.json
getline : 0.135 cycles per input byte (best) 0.144 cycles per input byte (avg) 15.238 GB/s (error margin: 0.810 GB/s)
simdjson (dynamic mem) : 3.212 cycles per input byte (best) 3.281 cycles per input byte (avg) 0.771 GB/s (error margin: 0.016 GB/s)
simdjson : 3.207 cycles per input byte (best) 3.285 cycles per input byte (avg) 0.772 GB/s (error margin: 0.018 GB/s)
RapidJSON : 5.923 cycles per input byte (best) 7.138 cycles per input byte (avg) 0.420 GB/s (error margin: 0.071 GB/s)
RapidJSON (insitu) : 6.087 cycles per input byte (best) 6.244 cycles per input byte (avg) 0.409 GB/s (error margin: 0.010 GB/s)
sajson (dynamic mem) : 4.925 cycles per input byte (best) 5.022 cycles per input byte (avg) 0.504 GB/s (error margin: 0.010 GB/s)
sajson : 4.466 cycles per input byte (best) 4.554 cycles per input byte (avg) 0.556 GB/s (error margin: 0.011 GB/s)
nlohmann-json : 45.200 cycles per input byte (best) 46.175 cycles per input byte (avg) 0.055 GB/s (error margin: 0.001 GB/s)
memcpy : 0.059 cycles per input byte (best) 0.064 cycles per input byte (avg) 28.390 GB/s (error margin: 1.792 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 676995 instructions 1981869 branchmisses 2292 cacheref 31 cachemisses 6 bytespercachemiss 65 inspercycle 2.9 insperbyte 13.2
RapidJSON: cycles 1086254 instructions 3637725 branchmisses 2295 cacheref 104 cachemisses 2 bytespercachemiss 65 inspercycle 3.3 insperbyte 24.2
sajson : cycles 941263 instructions 2832012 branchmisses 3345 cacheref 76 cachemisses 6 bytespercachemiss 45 inspercycle 3.0 insperbyte 18.9
/home/ubuntu/simdjson/scripts/../jsonexamples/random.json
getline : 3.177 cycles per input byte (best) 3.268 cycles per input byte (avg) 0.785 GB/s (error margin: 0.022 GB/s)
simdjson (dynamic mem) : 2.478 cycles per input byte (best) 2.566 cycles per input byte (avg) 1.004 GB/s (error margin: 0.034 GB/s)
simdjson : 2.462 cycles per input byte (best) 2.534 cycles per input byte (avg) 1.011 GB/s (error margin: 0.029 GB/s)
RapidJSON : 7.849 cycles per input byte (best) 9.186 cycles per input byte (avg) 0.318 GB/s (error margin: 0.046 GB/s)
RapidJSON (insitu) : 9.039 cycles per input byte (best) 9.241 cycles per input byte (avg) 0.276 GB/s (error margin: 0.006 GB/s)
sajson (dynamic mem) : 4.485 cycles per input byte (best) 4.592 cycles per input byte (avg) 0.556 GB/s (error margin: 0.013 GB/s)
sajson : 3.327 cycles per input byte (best) 3.432 cycles per input byte (avg) 0.749 GB/s (error margin: 0.023 GB/s)
nlohmann-json : 38.121 cycles per input byte (best) 38.862 cycles per input byte (avg) 0.066 GB/s (error margin: 0.001 GB/s)
memcpy : 0.105 cycles per input byte (best) 0.107 cycles per input byte (avg) 22.006 GB/s (error margin: 0.457 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 1780417 instructions 6383445 branchmisses 2054 cacheref 35586 cachemisses 29 bytespercachemiss 249 inspercycle 3.6 insperbyte 12.5
RapidJSON: cycles 5581933 instructions 13740811 branchmisses 17579 cacheref 7604 cachemisses 9 bytespercachemiss 29 inspercycle 2.5 insperbyte 26.9
sajson : cycles 2410522 instructions 7881171 branchmisses 11462 cacheref 19588 cachemisses 23 bytespercachemiss 45 inspercycle 3.3 insperbyte 15.4
/home/ubuntu/simdjson/scripts/../jsonexamples/twitter.json
getline : 1.669 cycles per input byte (best) 1.713 cycles per input byte (avg) 1.492 GB/s (error margin: 0.039 GB/s)
simdjson (dynamic mem) : 1.595 cycles per input byte (best) 1.646 cycles per input byte (avg) 1.558 GB/s (error margin: 0.048 GB/s)
simdjson : 1.592 cycles per input byte (best) 1.632 cycles per input byte (avg) 1.561 GB/s (error margin: 0.038 GB/s)
RapidJSON : 7.061 cycles per input byte (best) 7.872 cycles per input byte (avg) 0.354 GB/s (error margin: 0.036 GB/s)
RapidJSON (insitu) : 6.952 cycles per input byte (best) 7.114 cycles per input byte (avg) 0.359 GB/s (error margin: 0.008 GB/s)
sajson (dynamic mem) : 3.206 cycles per input byte (best) 3.299 cycles per input byte (avg) 0.777 GB/s (error margin: 0.022 GB/s)
sajson : 2.723 cycles per input byte (best) 2.819 cycles per input byte (avg) 0.915 GB/s (error margin: 0.031 GB/s)
nlohmann-json : 27.454 cycles per input byte (best) 29.745 cycles per input byte (avg) 0.091 GB/s (error margin: 0.007 GB/s)
memcpy : 0.100 cycles per input byte (best) 0.102 cycles per input byte (avg) 23.372 GB/s (error margin: 0.438 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 1425650 instructions 4936043 branchmisses 3121 cacheref 29623 cachemisses 24 bytespercachemiss 202 inspercycle 3.5 insperbyte 7.8
RapidJSON: cycles 5610716 instructions 12114662 branchmisses 47893 cacheref 9814 cachemisses 11 bytespercachemiss 13 inspercycle 2.2 insperbyte 19.2
sajson : cycles 2492613 instructions 7232851 branchmisses 12725 cacheref 14480 cachemisses 12 bytespercachemiss 50 inspercycle 2.9 insperbyte 11.5
/home/ubuntu/simdjson/scripts/../jsonexamples/twitterescaped.json
getline : 0.132 cycles per input byte (best) 0.137 cycles per input byte (avg) 17.900 GB/s (error margin: 0.632 GB/s)
simdjson (dynamic mem) : 2.916 cycles per input byte (best) 3.018 cycles per input byte (avg) 0.854 GB/s (error margin: 0.029 GB/s)
simdjson : 2.937 cycles per input byte (best) 3.016 cycles per input byte (avg) 0.848 GB/s (error margin: 0.022 GB/s)
RapidJSON : 7.383 cycles per input byte (best) 8.260 cycles per input byte (avg) 0.338 GB/s (error margin: 0.036 GB/s)
RapidJSON (insitu) : 7.493 cycles per input byte (best) 7.667 cycles per input byte (avg) 0.333 GB/s (error margin: 0.008 GB/s)
sajson (dynamic mem) : 3.996 cycles per input byte (best) 4.094 cycles per input byte (avg) 0.624 GB/s (error margin: 0.015 GB/s)
sajson : 3.420 cycles per input byte (best) 3.503 cycles per input byte (avg) 0.729 GB/s (error margin: 0.017 GB/s)
nlohmann-json : 30.831 cycles per input byte (best) 33.286 cycles per input byte (avg) 0.081 GB/s (error margin: 0.006 GB/s)
memcpy : 0.106 cycles per input byte (best) 0.109 cycles per input byte (avg) 21.996 GB/s (error margin: 0.601 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 2337206 instructions 6844258 branchmisses 4986 cacheref 26497 cachemisses 26 bytespercachemiss 113 inspercycle 2.9 insperbyte 12.2
RapidJSON: cycles 5377114 instructions 12894322 branchmisses 30410 cacheref 7776 cachemisses 11 bytespercachemiss 18 inspercycle 2.4 insperbyte 22.9
sajson : cycles 2722782 instructions 7827360 branchmisses 19290 cacheref 12513 cachemisses 14 bytespercachemiss 29 inspercycle 2.9 insperbyte 13.9
/home/ubuntu/simdjson/scripts/../jsonexamples/update-center.json
getline : 0.132 cycles per input byte (best) 0.137 cycles per input byte (avg) 17.866 GB/s (error margin: 0.668 GB/s)
simdjson (dynamic mem) : 1.902 cycles per input byte (best) 1.964 cycles per input byte (avg) 1.306 GB/s (error margin: 0.041 GB/s)
simdjson : 1.894 cycles per input byte (best) 1.939 cycles per input byte (avg) 1.313 GB/s (error margin: 0.030 GB/s)
RapidJSON : 7.289 cycles per input byte (best) 8.550 cycles per input byte (avg) 0.342 GB/s (error margin: 0.050 GB/s)
RapidJSON (insitu) : 8.236 cycles per input byte (best) 8.444 cycles per input byte (avg) 0.303 GB/s (error margin: 0.007 GB/s)
sajson (dynamic mem) : 4.140 cycles per input byte (best) 4.237 cycles per input byte (avg) 0.602 GB/s (error margin: 0.014 GB/s)
sajson : 3.282 cycles per input byte (best) 3.366 cycles per input byte (avg) 0.759 GB/s (error margin: 0.019 GB/s)
nlohmann-json : 32.072 cycles per input byte (best) 34.790 cycles per input byte (avg) 0.078 GB/s (error margin: 0.006 GB/s)
memcpy : 0.107 cycles per input byte (best) 0.110 cycles per input byte (avg) 21.723 GB/s (error margin: 0.559 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 1426259 instructions 4614033 branchmisses 6060 cacheref 30147 cachemisses 29 bytespercachemiss 88 inspercycle 3.2 insperbyte 8.7
RapidJSON: cycles 5547981 instructions 13627625 branchmisses 19824 cacheref 7941 cachemisses 11 bytespercachemiss 27 inspercycle 2.5 insperbyte 25.6
sajson : cycles 2480816 instructions 6493028 branchmisses 20619 cacheref 16323 cachemisses 18 bytespercachemiss 26 inspercycle 2.6 insperbyte 12.2
ubuntu@ip-10-0-2-210:~/simdjson/build$ ../scripts/parser.sh
make: 'parsingcompetition' is up to date.
/home/ubuntu/simdjson/scripts/../jsonexamples/apache_builds.json
getline : 2.049 cycles per input byte (best) 2.135 cycles per input byte (avg) 1.200 GB/s (error margin: 0.048 GB/s)
simdjson (dynamic mem) : 1.082 cycles per input byte (best) 1.117 cycles per input byte (avg) 2.239 GB/s (error margin: 0.071 GB/s)
simdjson : 1.068 cycles per input byte (best) 1.100 cycles per input byte (avg) 2.267 GB/s (error margin: 0.065 GB/s)
RapidJSON : 6.172 cycles per input byte (best) 6.726 cycles per input byte (avg) 0.403 GB/s (error margin: 0.033 GB/s)
RapidJSON (insitu) : 6.459 cycles per input byte (best) 6.656 cycles per input byte (avg) 0.385 GB/s (error margin: 0.011 GB/s)
sajson (dynamic mem) : 2.811 cycles per input byte (best) 2.921 cycles per input byte (avg) 0.878 GB/s (error margin: 0.033 GB/s)
sajson : 2.285 cycles per input byte (best) 2.384 cycles per input byte (avg) 1.078 GB/s (error margin: 0.044 GB/s)
nlohmann-json : 25.953 cycles per input byte (best) 26.553 cycles per input byte (avg) 0.096 GB/s (error margin: 0.002 GB/s)
memcpy : 0.058 cycles per input byte (best) 0.062 cycles per input byte (avg) 27.460 GB/s (error margin: 1.843 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 194474 instructions 678311 branchmisses 139 cacheref 16 cachemisses 5 bytespercachemiss 919 inspercycle 3.5 insperbyte 5.3
RapidJSON: cycles 1039775 instructions 2677654 branchmisses 2454 cacheref 231 cachemisses 1 bytespercachemiss 52 inspercycle 2.6 insperbyte 21.0
sajson : cycles 417909 instructions 1269549 branchmisses 1853 cacheref 7 cachemisses 3 bytespercachemiss 69 inspercycle 3.0 insperbyte 10.0
/home/ubuntu/simdjson/scripts/../jsonexamples/canada.json
getline : 0.293 cycles per input byte (best) 0.385 cycles per input byte (avg) 8.444 GB/s (error margin: 1.997 GB/s)
simdjson (dynamic mem) : 2.737 cycles per input byte (best) 3.348 cycles per input byte (avg) 0.912 GB/s (error margin: 0.167 GB/s)
simdjson : 2.664 cycles per input byte (best) 2.912 cycles per input byte (avg) 0.937 GB/s (error margin: 0.080 GB/s)
RapidJSON : 6.193 cycles per input byte (best) 6.823 cycles per input byte (avg) 0.403 GB/s (error margin: 0.037 GB/s)
RapidJSON (insitu) : 6.147 cycles per input byte (best) 6.272 cycles per input byte (avg) 0.406 GB/s (error margin: 0.008 GB/s)
sajson (dynamic mem) : 6.069 cycles per input byte (best) 6.510 cycles per input byte (avg) 0.412 GB/s (error margin: 0.028 GB/s)
sajson : 4.684 cycles per input byte (best) 4.904 cycles per input byte (avg) 0.533 GB/s (error margin: 0.024 GB/s)
nlohmann-json : 50.390 cycles per input byte (best) 50.575 cycles per input byte (avg) 0.050 GB/s (error margin: 0.000 GB/s)
memcpy : 0.187 cycles per input byte (best) 0.192 cycles per input byte (avg) 13.212 GB/s (error margin: 0.345 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 8426700 instructions 28529858 branchmisses 17717 cacheref 155009 cachemisses 8323 bytespercachemiss 127 inspercycle 3.4 insperbyte 12.7
RapidJSON: cycles 15788838 instructions 54630659 branchmisses 12584 cacheref 55764 cachemisses 919 bytespercachemiss 179 inspercycle 3.5 insperbyte 24.3
sajson : cycles 14766497 instructions 47409949 branchmisses 11691 cacheref 80734 cachemisses 4481 bytespercachemiss 193 inspercycle 3.2 insperbyte 21.1
/home/ubuntu/simdjson/scripts/../jsonexamples/citm_catalog.json
getline : 1.773 cycles per input byte (best) 1.867 cycles per input byte (avg) 1.408 GB/s (error margin: 0.071 GB/s)
simdjson (dynamic mem) : 0.981 cycles per input byte (best) 1.181 cycles per input byte (avg) 2.540 GB/s (error margin: 0.429 GB/s)
simdjson : 0.975 cycles per input byte (best) 1.083 cycles per input byte (avg) 2.556 GB/s (error margin: 0.254 GB/s)
RapidJSON : 3.370 cycles per input byte (best) 3.757 cycles per input byte (avg) 0.741 GB/s (error margin: 0.076 GB/s)
RapidJSON (insitu) : 3.797 cycles per input byte (best) 3.901 cycles per input byte (avg) 0.658 GB/s (error margin: 0.018 GB/s)
sajson (dynamic mem) : 2.680 cycles per input byte (best) 2.889 cycles per input byte (avg) 0.931 GB/s (error margin: 0.068 GB/s)
sajson : 2.454 cycles per input byte (best) 2.572 cycles per input byte (avg) 1.017 GB/s (error margin: 0.047 GB/s)
nlohmann-json : 18.798 cycles per input byte (best) 18.892 cycles per input byte (avg) 0.133 GB/s (error margin: 0.001 GB/s)
memcpy : 0.182 cycles per input byte (best) 0.194 cycles per input byte (avg) 13.521 GB/s (error margin: 0.843 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 2376023 instructions 8589245 branchmisses 1880 cacheref 89588 cachemisses 375 bytespercachemiss 919 inspercycle 3.6 insperbyte 5.0
RapidJSON: cycles 8137109 instructions 23087414 branchmisses 8280 cacheref 52183 cachemisses 35 bytespercachemiss 209 inspercycle 2.8 insperbyte 13.4
sajson : cycles 5955776 instructions 18355942 branchmisses 23158 cacheref 43505 cachemisses 42 bytespercachemiss 75 inspercycle 3.1 insperbyte 10.6
/home/ubuntu/simdjson/scripts/../jsonexamples/github_events.json
getline : 1.485 cycles per input byte (best) 1.552 cycles per input byte (avg) 1.612 GB/s (error margin: 0.069 GB/s)
simdjson (dynamic mem) : 0.974 cycles per input byte (best) 1.012 cycles per input byte (avg) 2.401 GB/s (error margin: 0.086 GB/s)
simdjson : 0.962 cycles per input byte (best) 0.997 cycles per input byte (avg) 2.433 GB/s (error margin: 0.085 GB/s)
RapidJSON : 6.004 cycles per input byte (best) 6.622 cycles per input byte (avg) 0.412 GB/s (error margin: 0.038 GB/s)
RapidJSON (insitu) : 6.060 cycles per input byte (best) 6.311 cycles per input byte (avg) 0.408 GB/s (error margin: 0.016 GB/s)
sajson (dynamic mem) : 2.913 cycles per input byte (best) 3.024 cycles per input byte (avg) 0.838 GB/s (error margin: 0.030 GB/s)
sajson : 2.493 cycles per input byte (best) 2.641 cycles per input byte (avg) 0.976 GB/s (error margin: 0.054 GB/s)
nlohmann-json : 27.430 cycles per input byte (best) 28.134 cycles per input byte (avg) 0.091 GB/s (error margin: 0.002 GB/s)
memcpy : 0.057 cycles per input byte (best) 0.063 cycles per input byte (avg) 20.488 GB/s (error margin: 1.697 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 90045 instructions 297954 branchmisses 111 cacheref 7 cachemisses 3 bytespercachemiss 587 inspercycle 3.3 insperbyte 4.6
RapidJSON: cycles 521948 instructions 1350380 branchmisses 1978 cacheref 169 cachemisses 1 bytespercachemiss 33 inspercycle 2.6 insperbyte 20.7
sajson : cycles 250487 instructions 648534 branchmisses 2138 cacheref 3 cachemisses 1 bytespercachemiss 30 inspercycle 2.6 insperbyte 10.0
/home/ubuntu/simdjson/scripts/../jsonexamples/gsoc-2018.json
getline : 0.536 cycles per input byte (best) 0.560 cycles per input byte (avg) 4.648 GB/s (error margin: 0.200 GB/s)
simdjson (dynamic mem) : 0.765 cycles per input byte (best) 1.047 cycles per input byte (avg) 3.258 GB/s (error margin: 0.876 GB/s)
simdjson : 0.766 cycles per input byte (best) 0.912 cycles per input byte (avg) 3.255 GB/s (error margin: 0.521 GB/s)
RapidJSON : 5.128 cycles per input byte (best) 5.774 cycles per input byte (avg) 0.487 GB/s (error margin: 0.054 GB/s)
RapidJSON (insitu) : 4.997 cycles per input byte (best) 5.122 cycles per input byte (avg) 0.500 GB/s (error margin: 0.012 GB/s)
sajson (dynamic mem) : 2.245 cycles per input byte (best) 2.351 cycles per input byte (avg) 1.112 GB/s (error margin: 0.050 GB/s)
sajson : 2.080 cycles per input byte (best) 2.167 cycles per input byte (avg) 1.201 GB/s (error margin: 0.049 GB/s)
nlohmann-json : 22.858 cycles per input byte (best) 23.145 cycles per input byte (avg) 0.109 GB/s (error margin: 0.001 GB/s)
memcpy : 0.185 cycles per input byte (best) 0.188 cycles per input byte (avg) 13.357 GB/s (error margin: 0.209 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 3677558 instructions 9630054 branchmisses 20644 cacheref 168484 cachemisses 6343 bytespercachemiss 161 inspercycle 2.6 insperbyte 2.9
RapidJSON: cycles 22931573 instructions 68938976 branchmisses 34660 cacheref 79108 cachemisses 367 bytespercachemiss 96 inspercycle 3.0 insperbyte 20.7
sajson : cycles 9782898 instructions 35554430 branchmisses 34414 cacheref 66146 cachemisses 234 bytespercachemiss 97 inspercycle 3.6 insperbyte 10.7
/home/ubuntu/simdjson/scripts/../jsonexamples/instruments.json
getline : 2.199 cycles per input byte (best) 2.264 cycles per input byte (avg) 1.127 GB/s (error margin: 0.032 GB/s)
simdjson (dynamic mem) : 1.212 cycles per input byte (best) 1.258 cycles per input byte (avg) 2.029 GB/s (error margin: 0.073 GB/s)
simdjson : 1.209 cycles per input byte (best) 1.240 cycles per input byte (avg) 2.034 GB/s (error margin: 0.050 GB/s)
RapidJSON : 4.736 cycles per input byte (best) 5.698 cycles per input byte (avg) 0.526 GB/s (error margin: 0.088 GB/s)
RapidJSON (insitu) : 5.587 cycles per input byte (best) 5.769 cycles per input byte (avg) 0.446 GB/s (error margin: 0.014 GB/s)
sajson (dynamic mem) : 3.161 cycles per input byte (best) 3.267 cycles per input byte (avg) 0.786 GB/s (error margin: 0.025 GB/s)
sajson : 2.465 cycles per input byte (best) 2.657 cycles per input byte (avg) 1.006 GB/s (error margin: 0.072 GB/s)
nlohmann-json : 24.165 cycles per input byte (best) 25.090 cycles per input byte (avg) 0.103 GB/s (error margin: 0.004 GB/s)
memcpy : 0.095 cycles per input byte (best) 0.098 cycles per input byte (avg) 21.912 GB/s (error margin: 0.674 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 379186 instructions 1337105 branchmisses 544 cacheref 158 cachemisses 9 bytespercachemiss 405 inspercycle 3.5 insperbyte 6.1
RapidJSON: cycles 1457704 instructions 3995671 branchmisses 2186 cacheref 680 cachemisses 2 bytespercachemiss 101 inspercycle 2.7 insperbyte 18.1
sajson : cycles 804286 instructions 2717112 branchmisses 752 cacheref 288 cachemisses 7 bytespercachemiss 293 inspercycle 3.4 insperbyte 12.3
/home/ubuntu/simdjson/scripts/../jsonexamples/marine_ik.json
getline : 1.137 cycles per input byte (best) 1.184 cycles per input byte (avg) 2.194 GB/s (error margin: 0.086 GB/s)
simdjson (dynamic mem) : 3.122 cycles per input byte (best) 3.711 cycles per input byte (avg) 0.800 GB/s (error margin: 0.127 GB/s)
simdjson : 3.116 cycles per input byte (best) 3.457 cycles per input byte (avg) 0.802 GB/s (error margin: 0.079 GB/s)
RapidJSON : 6.229 cycles per input byte (best) 7.540 cycles per input byte (avg) 0.401 GB/s (error margin: 0.070 GB/s)
RapidJSON (insitu) : 7.623 cycles per input byte (best) 7.698 cycles per input byte (avg) 0.328 GB/s (error margin: 0.003 GB/s)
sajson (dynamic mem) : 6.104 cycles per input byte (best) 6.663 cycles per input byte (avg) 0.409 GB/s (error margin: 0.034 GB/s)
sajson : 4.439 cycles per input byte (best) 4.713 cycles per input byte (avg) 0.563 GB/s (error margin: 0.033 GB/s)
nlohmann-json : 41.165 cycles per input byte (best) 41.719 cycles per input byte (avg) 0.061 GB/s (error margin: 0.001 GB/s)
memcpy : 0.185 cycles per input byte (best) 0.188 cycles per input byte (avg) 13.378 GB/s (error margin: 0.270 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 13112825 instructions 39146568 branchmisses 57518 cacheref 256301 cachemisses 22422 bytespercachemiss 52 inspercycle 3.0 insperbyte 13.1
RapidJSON: cycles 25256939 instructions 69412080 branchmisses 49702 cacheref 151517 cachemisses 6070 bytespercachemiss 60 inspercycle 2.7 insperbyte 23.3
sajson : cycles 18590250 instructions 58459728 branchmisses 43601 cacheref 143980 cachemisses 16986 bytespercachemiss 68 inspercycle 3.1 insperbyte 19.6
/home/ubuntu/simdjson/scripts/../jsonexamples/mesh.json
getline : 0.132 cycles per input byte (best) 0.137 cycles per input byte (avg) 18.138 GB/s (error margin: 0.652 GB/s)
simdjson (dynamic mem) : 3.091 cycles per input byte (best) 3.175 cycles per input byte (avg) 0.807 GB/s (error margin: 0.021 GB/s)
simdjson : 3.091 cycles per input byte (best) 3.165 cycles per input byte (avg) 0.807 GB/s (error margin: 0.019 GB/s)
RapidJSON : 7.193 cycles per input byte (best) 8.081 cycles per input byte (avg) 0.347 GB/s (error margin: 0.038 GB/s)
RapidJSON (insitu) : 7.609 cycles per input byte (best) 7.842 cycles per input byte (avg) 0.328 GB/s (error margin: 0.010 GB/s)
sajson (dynamic mem) : 6.491 cycles per input byte (best) 6.676 cycles per input byte (avg) 0.385 GB/s (error margin: 0.011 GB/s)
sajson : 4.920 cycles per input byte (best) 5.031 cycles per input byte (avg) 0.507 GB/s (error margin: 0.011 GB/s)
nlohmann-json : 43.174 cycles per input byte (best) 43.577 cycles per input byte (avg) 0.058 GB/s (error margin: 0.001 GB/s)
memcpy : 0.105 cycles per input byte (best) 0.108 cycles per input byte (avg) 22.489 GB/s (error margin: 0.551 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 3147615 instructions 10162393 branchmisses 9430 cacheref 60786 cachemisses 48 bytespercachemiss 77 inspercycle 3.2 insperbyte 14.0
RapidJSON: cycles 6125272 instructions 17859999 branchmisses 9886 cacheref 28066 cachemisses 512 bytespercachemiss 73 inspercycle 2.9 insperbyte 24.7
sajson : cycles 5006962 instructions 15980837 branchmisses 9696 cacheref 34563 cachemisses 47 bytespercachemiss 75 inspercycle 3.2 insperbyte 22.1
/home/ubuntu/simdjson/scripts/../jsonexamples/mesh.pretty.json
getline : 2.600 cycles per input byte (best) 2.711 cycles per input byte (avg) 0.960 GB/s (error margin: 0.039 GB/s)
simdjson (dynamic mem) : 1.843 cycles per input byte (best) 2.142 cycles per input byte (avg) 1.353 GB/s (error margin: 0.189 GB/s)
simdjson : 1.841 cycles per input byte (best) 2.015 cycles per input byte (avg) 1.355 GB/s (error margin: 0.117 GB/s)
RapidJSON : 4.344 cycles per input byte (best) 4.984 cycles per input byte (avg) 0.575 GB/s (error margin: 0.074 GB/s)
RapidJSON (insitu) : 4.751 cycles per input byte (best) 4.888 cycles per input byte (avg) 0.526 GB/s (error margin: 0.015 GB/s)
sajson (dynamic mem) : 3.968 cycles per input byte (best) 4.312 cycles per input byte (avg) 0.629 GB/s (error margin: 0.050 GB/s)
sajson : 3.068 cycles per input byte (best) 3.284 cycles per input byte (avg) 0.814 GB/s (error margin: 0.054 GB/s)
nlohmann-json : 25.704 cycles per input byte (best) 25.946 cycles per input byte (avg) 0.097 GB/s (error margin: 0.001 GB/s)
memcpy : 0.176 cycles per input byte (best) 0.180 cycles per input byte (avg) 13.903 GB/s (error margin: 0.267 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 4078539 instructions 12727498 branchmisses 13980 cacheref 88350 cachemisses 311 bytespercachemiss 113 inspercycle 3.1 insperbyte 8.1
RapidJSON: cycles 8955431 instructions 24799403 branchmisses 17815 cacheref 40840 cachemisses 29 bytespercachemiss 89 inspercycle 2.8 insperbyte 15.7
sajson : cycles 7087437 instructions 22001687 branchmisses 15656 cacheref 49549 cachemisses 86 bytespercachemiss 101 inspercycle 3.1 insperbyte 13.9
/home/ubuntu/simdjson/scripts/../jsonexamples/numbers.json
getline : 0.136 cycles per input byte (best) 0.143 cycles per input byte (avg) 15.213 GB/s (error margin: 0.793 GB/s)
simdjson (dynamic mem) : 2.651 cycles per input byte (best) 2.712 cycles per input byte (avg) 0.933 GB/s (error margin: 0.021 GB/s)
simdjson : 2.646 cycles per input byte (best) 2.701 cycles per input byte (avg) 0.934 GB/s (error margin: 0.019 GB/s)
RapidJSON : 5.458 cycles per input byte (best) 6.730 cycles per input byte (avg) 0.455 GB/s (error margin: 0.086 GB/s)
RapidJSON (insitu) : 5.845 cycles per input byte (best) 6.035 cycles per input byte (avg) 0.425 GB/s (error margin: 0.013 GB/s)
sajson (dynamic mem) : 4.942 cycles per input byte (best) 5.047 cycles per input byte (avg) 0.503 GB/s (error margin: 0.010 GB/s)
sajson : 4.585 cycles per input byte (best) 4.687 cycles per input byte (avg) 0.542 GB/s (error margin: 0.012 GB/s)
nlohmann-json : 45.392 cycles per input byte (best) 46.458 cycles per input byte (avg) 0.055 GB/s (error margin: 0.001 GB/s)
memcpy : 0.061 cycles per input byte (best) 0.063 cycles per input byte (avg) 28.277 GB/s (error margin: 1.011 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 558791 instructions 1713436 branchmisses 2211 cacheref 32 cachemisses 5 bytespercachemiss 68 inspercycle 3.1 insperbyte 11.4
RapidJSON: cycles 1060122 instructions 3467701 branchmisses 2116 cacheref 118 cachemisses 1 bytespercachemiss 71 inspercycle 3.3 insperbyte 23.1
sajson : cycles 967801 instructions 2832012 branchmisses 3997 cacheref 58 cachemisses 7 bytespercachemiss 38 inspercycle 2.9 insperbyte 18.9
/home/ubuntu/simdjson/scripts/../jsonexamples/random.json
getline : 3.189 cycles per input byte (best) 3.259 cycles per input byte (avg) 0.782 GB/s (error margin: 0.017 GB/s)
simdjson (dynamic mem) : 1.775 cycles per input byte (best) 1.844 cycles per input byte (avg) 1.399 GB/s (error margin: 0.052 GB/s)
simdjson : 1.775 cycles per input byte (best) 1.828 cycles per input byte (avg) 1.399 GB/s (error margin: 0.041 GB/s)
RapidJSON : 7.249 cycles per input byte (best) 8.603 cycles per input byte (avg) 0.344 GB/s (error margin: 0.054 GB/s)
RapidJSON (insitu) : 8.739 cycles per input byte (best) 8.951 cycles per input byte (avg) 0.286 GB/s (error margin: 0.007 GB/s)
sajson (dynamic mem) : 4.457 cycles per input byte (best) 4.575 cycles per input byte (avg) 0.559 GB/s (error margin: 0.014 GB/s)
sajson : 3.331 cycles per input byte (best) 3.430 cycles per input byte (avg) 0.748 GB/s (error margin: 0.022 GB/s)
nlohmann-json : 37.999 cycles per input byte (best) 38.885 cycles per input byte (avg) 0.066 GB/s (error margin: 0.002 GB/s)
memcpy : 0.084 cycles per input byte (best) 0.089 cycles per input byte (avg) 26.967 GB/s (error margin: 1.443 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 1281627 instructions 4363371 branchmisses 2144 cacheref 36289 cachemisses 30 bytespercachemiss 238 inspercycle 3.4 insperbyte 8.5
RapidJSON: cycles 5376270 instructions 13118251 branchmisses 12212 cacheref 7079 cachemisses 12 bytespercachemiss 42 inspercycle 2.4 insperbyte 25.7
sajson : cycles 2414134 instructions 7881171 branchmisses 11661 cacheref 19346 cachemisses 24 bytespercachemiss 44 inspercycle 3.3 insperbyte 15.4
/home/ubuntu/simdjson/scripts/../jsonexamples/twitter.json
getline : 1.683 cycles per input byte (best) 1.723 cycles per input byte (avg) 1.480 GB/s (error margin: 0.034 GB/s)
simdjson (dynamic mem) : 1.136 cycles per input byte (best) 1.182 cycles per input byte (avg) 2.182 GB/s (error margin: 0.084 GB/s)
simdjson : 1.134 cycles per input byte (best) 1.166 cycles per input byte (avg) 2.185 GB/s (error margin: 0.060 GB/s)
RapidJSON : 5.721 cycles per input byte (best) 6.548 cycles per input byte (avg) 0.436 GB/s (error margin: 0.055 GB/s)
RapidJSON (insitu) : 6.100 cycles per input byte (best) 6.241 cycles per input byte (avg) 0.409 GB/s (error margin: 0.009 GB/s)
sajson (dynamic mem) : 3.209 cycles per input byte (best) 3.301 cycles per input byte (avg) 0.777 GB/s (error margin: 0.022 GB/s)
sajson : 2.763 cycles per input byte (best) 2.839 cycles per input byte (avg) 0.902 GB/s (error margin: 0.024 GB/s)
nlohmann-json : 27.305 cycles per input byte (best) 29.409 cycles per input byte (avg) 0.092 GB/s (error margin: 0.007 GB/s)
memcpy : 0.096 cycles per input byte (best) 0.098 cycles per input byte (avg) 24.403 GB/s (error margin: 0.582 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 1024990 instructions 3225087 branchmisses 3374 cacheref 31479 cachemisses 24 bytespercachemiss 187 inspercycle 3.1 insperbyte 5.1
RapidJSON: cycles 4865916 instructions 11942970 branchmisses 20084 cacheref 8344 cachemisses 11 bytespercachemiss 31 inspercycle 2.5 insperbyte 18.9
sajson : cycles 2486456 instructions 7232851 branchmisses 12816 cacheref 13930 cachemisses 13 bytespercachemiss 49 inspercycle 2.9 insperbyte 11.5
/home/ubuntu/simdjson/scripts/../jsonexamples/twitterescaped.json
getline : 0.132 cycles per input byte (best) 0.137 cycles per input byte (avg) 17.919 GB/s (error margin: 0.685 GB/s)
simdjson (dynamic mem) : 2.199 cycles per input byte (best) 2.257 cycles per input byte (avg) 1.131 GB/s (error margin: 0.029 GB/s)
simdjson : 2.194 cycles per input byte (best) 2.264 cycles per input byte (avg) 1.134 GB/s (error margin: 0.035 GB/s)
RapidJSON : 7.209 cycles per input byte (best) 7.831 cycles per input byte (avg) 0.346 GB/s (error margin: 0.027 GB/s)
RapidJSON (insitu) : 7.421 cycles per input byte (best) 7.592 cycles per input byte (avg) 0.336 GB/s (error margin: 0.008 GB/s)
sajson (dynamic mem) : 3.978 cycles per input byte (best) 4.075 cycles per input byte (avg) 0.627 GB/s (error margin: 0.015 GB/s)
sajson : 3.389 cycles per input byte (best) 3.476 cycles per input byte (avg) 0.736 GB/s (error margin: 0.018 GB/s)
nlohmann-json : 30.524 cycles per input byte (best) 33.098 cycles per input byte (avg) 0.082 GB/s (error margin: 0.006 GB/s)
memcpy : 0.107 cycles per input byte (best) 0.109 cycles per input byte (avg) 21.844 GB/s (error margin: 0.506 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 1754811 instructions 5074289 branchmisses 5438 cacheref 26594 cachemisses 25 bytespercachemiss 103 inspercycle 2.9 insperbyte 9.0
RapidJSON: cycles 5320067 instructions 12653736 branchmisses 26038 cacheref 6960 cachemisses 9 bytespercachemiss 22 inspercycle 2.4 insperbyte 22.5
sajson : cycles 2700723 instructions 7827360 branchmisses 18991 cacheref 12485 cachemisses 13 bytespercachemiss 30 inspercycle 2.9 insperbyte 13.9
/home/ubuntu/simdjson/scripts/../jsonexamples/update-center.json
getline : 0.131 cycles per input byte (best) 0.137 cycles per input byte (avg) 18.016 GB/s (error margin: 0.746 GB/s)
simdjson (dynamic mem) : 1.436 cycles per input byte (best) 1.481 cycles per input byte (avg) 1.728 GB/s (error margin: 0.052 GB/s)
simdjson : 1.435 cycles per input byte (best) 1.492 cycles per input byte (avg) 1.729 GB/s (error margin: 0.066 GB/s)
RapidJSON : 7.761 cycles per input byte (best) 8.273 cycles per input byte (avg) 0.322 GB/s (error margin: 0.020 GB/s)
RapidJSON (insitu) : 8.261 cycles per input byte (best) 8.444 cycles per input byte (avg) 0.302 GB/s (error margin: 0.007 GB/s)
sajson (dynamic mem) : 4.129 cycles per input byte (best) 4.227 cycles per input byte (avg) 0.604 GB/s (error margin: 0.014 GB/s)
sajson : 3.262 cycles per input byte (best) 3.346 cycles per input byte (avg) 0.764 GB/s (error margin: 0.019 GB/s)
nlohmann-json : 31.989 cycles per input byte (best) 34.666 cycles per input byte (avg) 0.078 GB/s (error margin: 0.006 GB/s)
memcpy : 0.105 cycles per input byte (best) 0.108 cycles per input byte (avg) 22.136 GB/s (error margin: 0.645 GB/s)
<doing additional analysis with performance counters (Linux only)>
simdjson : cycles 1090514 instructions 3166948 branchmisses 6131 cacheref 30436 cachemisses 26 bytespercachemiss 87 inspercycle 2.9 insperbyte 5.9
RapidJSON: cycles 5550144 instructions 13357743 branchmisses 21021 cacheref 7506 cachemisses 10 bytespercachemiss 25 inspercycle 2.4 insperbyte 25.1
sajson : cycles 2466679 instructions 6493028 branchmisses 20414 cacheref 15982 cachemisses 18 bytespercachemiss 26 inspercycle 2.6 insperbyte 12.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment