Closed klauspost closed 4 years ago
Serializes at ~2x the speed in the NDJSON example. De-serializes at ~6x the speed on NDJSON.
Percentages are percentage of original JSON size.
1M records, NDJSON:
BenchmarkSerializeNDJSON/default-12 1 1414274800 ns/op 258.43 MB/s 19217952 B/op 3193 allocs/op --- BENCH: BenchmarkSerializeNDJSON/default-12 parsed_serialize_test.go:134: 365489369 (JSON) -> 61278257 (Serialized) 16.76608465183566 % BenchmarkSerializeNDJSON/none-12 1 1398844300 ns/op 261.28 MB/s 65744 B/op 8 allocs/op --- BENCH: BenchmarkSerializeNDJSON/none-12 parsed_serialize_test.go:134: 365489369 (JSON) -> 647761879 (Serialized) 177.23138726916022 % BenchmarkSerializeNDJSON/fast-12 1 1376384200 ns/op 265.54 MB/s 16046656 B/op 3177 allocs/op --- BENCH: BenchmarkSerializeNDJSON/fast-12 parsed_serialize_test.go:134: 365489369 (JSON) -> 62554609 (Serialized) 17.11530192277631 % BenchmarkSerializeNDJSON/best-12 1 1429933200 ns/op 255.60 MB/s 26138976 B/op 170 allocs/op --- BENCH: BenchmarkSerializeNDJSON/best-12 parsed_serialize_test.go:134: 365489369 (JSON) -> 39217503 (Serialized) 10.730135080892051 %
1M records, NDJSON de-serialize:
BenchmarkDeSerializeNDJSON/default-12 3 387993433 ns/op 942.00 MB/s 1750874 B/op 19 allocs/op --- BENCH: BenchmarkDeSerializeNDJSON/default-12 parsed_serialize_test.go:175: 365489369 (JSON) -> 61482212 (Serialized) 16.821887916526514 % BenchmarkDeSerializeNDJSON/none-12 5 216631960 ns/op 1687.14 MB/s 336 B/op 15 allocs/op --- BENCH: BenchmarkDeSerializeNDJSON/none-12 parsed_serialize_test.go:175: 365489369 (JSON) -> 647773372 (Serialized) 177.23453182026753 % BenchmarkDeSerializeNDJSON/fast-12 3 368398600 ns/op 992.10 MB/s 480 B/op 18 allocs/op --- BENCH: BenchmarkDeSerializeNDJSON/fast-12 parsed_serialize_test.go:175: 365489369 (JSON) -> 62840137 (Serialized) 17.19342403089158 % BenchmarkDeSerializeNDJSON/best-12 2 625885100 ns/op 583.96 MB/s 3744344 B/op 73 allocs/op --- BENCH: BenchmarkDeSerializeNDJSON/best-12 parsed_serialize_test.go:175: 365489369 (JSON) -> 39538847 (Serialized) 10.818056653242902 % PASS
Smaller blocks:
BenchmarkSerialize/default/apache_builds-12 2385 488826 ns/op 260.37 MB/s 179326 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/default/apache_builds-12 parsed_serialize_test.go:37: 127275 (JSON) -> 31458 (Serialized) 24.716558632881554 % BenchmarkSerialize/default/canada-12 100 13474126 ns/op 167.06 MB/s 912988 B/op 47 allocs/op --- BENCH: BenchmarkSerialize/default/canada-12 parsed_serialize_test.go:37: 2251051 (JSON) -> 735682 (Serialized) 32.681711787071904 % BenchmarkSerialize/default/citm_catalog-12 516 2514632 ns/op 686.86 MB/s 204854 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/default/citm_catalog-12 parsed_serialize_test.go:37: 1727204 (JSON) -> 36507 (Serialized) 2.113647258806719 % BenchmarkSerialize/default/github_events-12 3793 276877 ns/op 235.24 MB/s 125319 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/default/github_events-12 parsed_serialize_test.go:37: 65132 (JSON) -> 18952 (Serialized) 29.09783209482282 % BenchmarkSerialize/default/gsoc-2018-12 100 14242309 ns/op 233.66 MB/s 828581 B/op 46 allocs/op --- BENCH: BenchmarkSerialize/default/gsoc-2018-12 parsed_serialize_test.go:37: 3327831 (JSON) -> 628037 (Serialized) 18.872262443615675 % BenchmarkSerialize/default/instruments-12 1603 996746 ns/op 221.07 MB/s 125025 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/default/instruments-12 parsed_serialize_test.go:37: 220346 (JSON) -> 8344 (Serialized) 3.786771713577737 % BenchmarkSerialize/default/numbers-12 2266 477525 ns/op 314.38 MB/s 94364 B/op 31 allocs/op --- BENCH: BenchmarkSerialize/default/numbers-12 parsed_serialize_test.go:37: 150124 (JSON) -> 80111 (Serialized) 53.36321973834963 % BenchmarkSerialize/default/marine_ik-12 153 7744171 ns/op 385.25 MB/s 461689 B/op 49 allocs/op --- BENCH: BenchmarkSerialize/default/marine_ik-12 parsed_serialize_test.go:37: 2983466 (JSON) -> 871184 (Serialized) 29.200399803450082 % BenchmarkSerialize/default/mesh-12 219 4836409 ns/op 149.61 MB/s 246199 B/op 39 allocs/op --- BENCH: BenchmarkSerialize/default/mesh-12 parsed_serialize_test.go:37: 723597 (JSON) -> 259738 (Serialized) 35.895394812305746 % BenchmarkSerialize/default/mesh.pretty-12 282 3738356 ns/op 421.94 MB/s 146404 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/default/mesh.pretty-12 parsed_serialize_test.go:37: 1577353 (JSON) -> 256824 (Serialized) 16.28196098146705 % BenchmarkSerialize/default/twitterescaped-12 955 1235437 ns/op 455.23 MB/s 103067 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/default/twitterescaped-12 parsed_serialize_test.go:37: 562408 (JSON) -> 66256 (Serialized) 11.780771255031935 % BenchmarkSerialize/default/twitter-12 865 1221602 ns/op 516.96 MB/s 94528 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/default/twitter-12 parsed_serialize_test.go:37: 631514 (JSON) -> 66256 (Serialized) 10.491612220790039 % BenchmarkSerialize/default/random-12 451 2660294 ns/op 191.89 MB/s 126231 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/default/random-12 parsed_serialize_test.go:37: 510476 (JSON) -> 139476 (Serialized) 27.322734075647045 % BenchmarkSerialize/default/update-center-12 393 2953944 ns/op 180.50 MB/s 126789 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/default/update-center-12 parsed_serialize_test.go:37: 533178 (JSON) -> 231599 (Serialized) 43.43746366129135 % BenchmarkSerialize/none/apache_builds-12 2407 482131 ns/op 263.98 MB/s 95763 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/apache_builds-12 parsed_serialize_test.go:37: 127275 (JSON) -> 31458 (Serialized) 24.716558632881554 % BenchmarkSerialize/none/canada-12 100 19567707 ns/op 115.04 MB/s 469224 B/op 44 allocs/op --- BENCH: BenchmarkSerialize/none/canada-12 parsed_serialize_test.go:37: 2251051 (JSON) -> 735682 (Serialized) 32.681711787071904 % BenchmarkSerialize/none/citm_catalog-12 350 4587868 ns/op 376.47 MB/s 109945 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/citm_catalog-12 parsed_serialize_test.go:37: 1727204 (JSON) -> 36507 (Serialized) 2.113647258806719 % BenchmarkSerialize/none/github_events-12 4180 271529 ns/op 239.87 MB/s 94953 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/github_events-12 parsed_serialize_test.go:37: 65132 (JSON) -> 18952 (Serialized) 29.09783209482282 % BenchmarkSerialize/none/gsoc-2018-12 100 10862535 ns/op 306.36 MB/s 775713 B/op 45 allocs/op --- BENCH: BenchmarkSerialize/none/gsoc-2018-12 parsed_serialize_test.go:37: 3327831 (JSON) -> 628037 (Serialized) 18.872262443615675 % BenchmarkSerialize/none/instruments-12 1603 976996 ns/op 225.53 MB/s 80210 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/instruments-12 parsed_serialize_test.go:37: 220346 (JSON) -> 8344 (Serialized) 3.786771713577737 % BenchmarkSerialize/none/numbers-12 8853 135047 ns/op 1111.64 MB/s 78189 B/op 31 allocs/op --- BENCH: BenchmarkSerialize/none/numbers-12 parsed_serialize_test.go:37: 150124 (JSON) -> 80111 (Serialized) 53.36321973834963 % BenchmarkSerialize/none/marine_ik-12 140 8683956 ns/op 343.56 MB/s 241850 B/op 48 allocs/op --- BENCH: BenchmarkSerialize/none/marine_ik-12 parsed_serialize_test.go:37: 2983466 (JSON) -> 871184 (Serialized) 29.200399803450082 % BenchmarkSerialize/none/mesh-12 374 3397186 ns/op 213.00 MB/s 158065 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/mesh-12 parsed_serialize_test.go:37: 723597 (JSON) -> 259738 (Serialized) 35.895394812305746 % BenchmarkSerialize/none/mesh.pretty-12 283 4490418 ns/op 351.27 MB/s 161061 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/mesh.pretty-12 parsed_serialize_test.go:37: 1577353 (JSON) -> 256824 (Serialized) 16.28196098146705 % BenchmarkSerialize/none/twitterescaped-12 904 1231937 ns/op 456.52 MB/s 98056 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/twitterescaped-12 parsed_serialize_test.go:37: 562408 (JSON) -> 66256 (Serialized) 11.780771255031935 % BenchmarkSerialize/none/twitter-12 918 1209183 ns/op 522.27 MB/s 95279 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/twitter-12 parsed_serialize_test.go:37: 631514 (JSON) -> 66256 (Serialized) 10.491612220790039 % BenchmarkSerialize/none/random-12 450 2683863 ns/op 190.20 MB/s 114613 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/random-12 parsed_serialize_test.go:37: 510476 (JSON) -> 139476 (Serialized) 27.322734075647045 % BenchmarkSerialize/none/update-center-12 396 2951627 ns/op 180.64 MB/s 121004 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/none/update-center-12 parsed_serialize_test.go:37: 533178 (JSON) -> 231599 (Serialized) 43.43746366129135 % BenchmarkSerialize/fast/apache_builds-12 2407 477336 ns/op 266.64 MB/s 83037 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/apache_builds-12 parsed_serialize_test.go:37: 127275 (JSON) -> 31458 (Serialized) 24.716558632881554 % BenchmarkSerialize/fast/canada-12 100 19428567 ns/op 115.86 MB/s 416438 B/op 44 allocs/op --- BENCH: BenchmarkSerialize/fast/canada-12 parsed_serialize_test.go:37: 2251051 (JSON) -> 735682 (Serialized) 32.681711787071904 % BenchmarkSerialize/fast/citm_catalog-12 272 5012522 ns/op 344.58 MB/s 164746 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/citm_catalog-12 parsed_serialize_test.go:37: 1727204 (JSON) -> 36507 (Serialized) 2.113647258806719 % BenchmarkSerialize/fast/github_events-12 4461 269391 ns/op 241.77 MB/s 86374 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/github_events-12 parsed_serialize_test.go:37: 65132 (JSON) -> 18952 (Serialized) 29.09783209482282 % BenchmarkSerialize/fast/gsoc-2018-12 100 12303820 ns/op 270.47 MB/s 585519 B/op 45 allocs/op --- BENCH: BenchmarkSerialize/fast/gsoc-2018-12 parsed_serialize_test.go:37: 3327831 (JSON) -> 628037 (Serialized) 18.872262443615675 % BenchmarkSerialize/fast/instruments-12 1522 1283191 ns/op 171.72 MB/s 83648 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/instruments-12 parsed_serialize_test.go:37: 220346 (JSON) -> 8344 (Serialized) 3.786771713577737 % BenchmarkSerialize/fast/numbers-12 8721 136203 ns/op 1102.21 MB/s 74959 B/op 31 allocs/op --- BENCH: BenchmarkSerialize/fast/numbers-12 parsed_serialize_test.go:37: 150124 (JSON) -> 80111 (Serialized) 53.36321973834963 % BenchmarkSerialize/fast/marine_ik-12 163 7385830 ns/op 403.94 MB/s 321038 B/op 49 allocs/op --- BENCH: BenchmarkSerialize/fast/marine_ik-12 parsed_serialize_test.go:37: 2983466 (JSON) -> 871184 (Serialized) 29.200399803450082 % BenchmarkSerialize/fast/mesh-12 366 4835783 ns/op 149.63 MB/s 113890 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/mesh-12 parsed_serialize_test.go:37: 723597 (JSON) -> 259738 (Serialized) 35.895394812305746 % BenchmarkSerialize/fast/mesh.pretty-12 250 5267033 ns/op 299.48 MB/s 211355 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/mesh.pretty-12 parsed_serialize_test.go:37: 1577353 (JSON) -> 256824 (Serialized) 16.28196098146705 % BenchmarkSerialize/fast/twitterescaped-12 841 1225088 ns/op 459.08 MB/s 101583 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/twitterescaped-12 parsed_serialize_test.go:37: 562408 (JSON) -> 66256 (Serialized) 11.780771255031935 % BenchmarkSerialize/fast/twitter-12 954 1255663 ns/op 502.93 MB/s 97561 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/twitter-12 parsed_serialize_test.go:37: 631514 (JSON) -> 66256 (Serialized) 10.491612220790039 % BenchmarkSerialize/fast/random-12 463 2602118 ns/op 196.18 MB/s 120151 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/random-12 parsed_serialize_test.go:37: 510476 (JSON) -> 139476 (Serialized) 27.322734075647045 % BenchmarkSerialize/fast/update-center-12 396 3010992 ns/op 177.08 MB/s 158331 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/fast/update-center-12 parsed_serialize_test.go:37: 533178 (JSON) -> 231599 (Serialized) 43.43746366129135 % BenchmarkSerialize/best/apache_builds-12 2406 477758 ns/op 266.40 MB/s 83918 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/apache_builds-12 parsed_serialize_test.go:37: 127275 (JSON) -> 31458 (Serialized) 24.716558632881554 % BenchmarkSerialize/best/canada-12 100 17360168 ns/op 129.67 MB/s 511507 B/op 44 allocs/op --- BENCH: BenchmarkSerialize/best/canada-12 parsed_serialize_test.go:37: 2251051 (JSON) -> 735682 (Serialized) 32.681711787071904 % BenchmarkSerialize/best/citm_catalog-12 264 4994173 ns/op 345.84 MB/s 163658 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/citm_catalog-12 parsed_serialize_test.go:37: 1727204 (JSON) -> 36507 (Serialized) 2.113647258806719 % BenchmarkSerialize/best/github_events-12 4407 272865 ns/op 238.70 MB/s 76775 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/github_events-12 parsed_serialize_test.go:37: 65132 (JSON) -> 18952 (Serialized) 29.09783209482282 % BenchmarkSerialize/best/gsoc-2018-12 100 10852114 ns/op 306.65 MB/s 469364 B/op 44 allocs/op --- BENCH: BenchmarkSerialize/best/gsoc-2018-12 parsed_serialize_test.go:37: 3327831 (JSON) -> 628037 (Serialized) 18.872262443615675 % BenchmarkSerialize/best/instruments-12 2187 720069 ns/op 306.01 MB/s 77818 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/instruments-12 parsed_serialize_test.go:37: 220346 (JSON) -> 8344 (Serialized) 3.786771713577737 % BenchmarkSerialize/best/numbers-12 8020 138797 ns/op 1081.61 MB/s 73650 B/op 31 allocs/op --- BENCH: BenchmarkSerialize/best/numbers-12 parsed_serialize_test.go:37: 150124 (JSON) -> 80111 (Serialized) 53.36321973834963 % BenchmarkSerialize/best/marine_ik-12 162 7856525 ns/op 379.74 MB/s 205201 B/op 48 allocs/op --- BENCH: BenchmarkSerialize/best/marine_ik-12 parsed_serialize_test.go:37: 2983466 (JSON) -> 871184 (Serialized) 29.200399803450082 % BenchmarkSerialize/best/mesh-12 418 3535512 ns/op 204.67 MB/s 140966 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/mesh-12 parsed_serialize_test.go:37: 723597 (JSON) -> 259738 (Serialized) 35.895394812305746 % BenchmarkSerialize/best/mesh.pretty-12 308 4566657 ns/op 345.41 MB/s 160274 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/mesh.pretty-12 parsed_serialize_test.go:37: 1577353 (JSON) -> 256824 (Serialized) 16.28196098146705 % BenchmarkSerialize/best/twitterescaped-12 877 1217999 ns/op 461.75 MB/s 101405 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/twitterescaped-12 parsed_serialize_test.go:37: 562408 (JSON) -> 66256 (Serialized) 11.780771255031935 % BenchmarkSerialize/best/twitter-12 939 1242055 ns/op 508.44 MB/s 101405 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/twitter-12 parsed_serialize_test.go:37: 631514 (JSON) -> 66256 (Serialized) 10.491612220790039 % BenchmarkSerialize/best/random-12 468 2642523 ns/op 193.18 MB/s 108302 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/random-12 parsed_serialize_test.go:37: 510476 (JSON) -> 139476 (Serialized) 27.322734075647045 % BenchmarkSerialize/best/update-center-12 396 2951720 ns/op 180.63 MB/s 123697 B/op 38 allocs/op --- BENCH: BenchmarkSerialize/best/update-center-12 parsed_serialize_test.go:37: 533178 (JSON) -> 231599 (Serialized) 43.43746366129135 %
BenchmarkDeSerialize/default/apache_builds-12 16810 72204 ns/op 1762.71 MB/s 1518 B/op 18 allocs/op BenchmarkDeSerialize/default/canada-12 541 2151607 ns/op 1046.22 MB/s 480 B/op 18 allocs/op BenchmarkDeSerialize/default/citm_catalog-12 2559 433850 ns/op 3981.11 MB/s 2440 B/op 18 allocs/op BenchmarkDeSerialize/default/github_events-12 28579 42525 ns/op 1531.61 MB/s 629 B/op 18 allocs/op BenchmarkDeSerialize/default/gsoc-2018-12 775 1546996 ns/op 2151.16 MB/s 480 B/op 18 allocs/op BenchmarkDeSerialize/default/instruments-12 12244 99544 ns/op 2213.55 MB/s 838 B/op 18 allocs/op BenchmarkDeSerialize/default/numbers-12 19627 60775 ns/op 2470.18 MB/s 480 B/op 18 allocs/op BenchmarkDeSerialize/default/marine_ik-12 412 2689753 ns/op 1109.20 MB/s 12436 B/op 18 allocs/op BenchmarkDeSerialize/default/mesh-12 2228 519714 ns/op 1392.30 MB/s 5156 B/op 18 allocs/op BenchmarkDeSerialize/default/mesh.pretty-12 2313 501054 ns/op 3148.07 MB/s 4453 B/op 18 allocs/op BenchmarkDeSerialize/default/twitterescaped-12 5475 208749 ns/op 2694.19 MB/s 541 B/op 18 allocs/op BenchmarkDeSerialize/default/twitter-12 5012 209133 ns/op 3019.68 MB/s 2380 B/op 18 allocs/op BenchmarkDeSerialize/default/random-12 2797 395889 ns/op 1289.44 MB/s 2263 B/op 18 allocs/op BenchmarkDeSerialize/default/update-center-12 2736 411169 ns/op 1296.74 MB/s 2487 B/op 18 allocs/op BenchmarkDeSerialize/none/apache_builds-12 39315 31228 ns/op 4075.68 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/canada-12 1624 741336 ns/op 3036.48 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/citm_catalog-12 4010 299198 ns/op 5772.77 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/github_events-12 108393 10912 ns/op 5968.63 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/gsoc-2018-12 5728 212511 ns/op 15659.54 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/instruments-12 21996 54092 ns/op 4073.55 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/numbers-12 35460 33729 ns/op 4450.82 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/marine_ik-12 853 1298036 ns/op 2298.45 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/mesh-12 4620 255675 ns/op 2830.14 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/mesh.pretty-12 4627 255482 ns/op 6174.03 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/twitterescaped-12 10000 111363 ns/op 5050.20 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/twitter-12 10797 110754 ns/op 5701.98 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/random-12 6333 225107 ns/op 2267.70 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/none/update-center-12 6332 179107 ns/op 2976.88 MB/s 336 B/op 15 allocs/op BenchmarkDeSerialize/fast/apache_builds-12 16042 70264 ns/op 1811.39 MB/s 752 B/op 18 allocs/op BenchmarkDeSerialize/fast/canada-12 756 1548482 ns/op 1453.72 MB/s 12205 B/op 18 allocs/op BenchmarkDeSerialize/fast/citm_catalog-12 2614 432674 ns/op 3991.93 MB/s 2369 B/op 18 allocs/op BenchmarkDeSerialize/fast/github_events-12 25435 46824 ns/op 1391.00 MB/s 480 B/op 18 allocs/op BenchmarkDeSerialize/fast/gsoc-2018-12 890 1302330 ns/op 2555.29 MB/s 480 B/op 18 allocs/op BenchmarkDeSerialize/fast/instruments-12 12597 95930 ns/op 2296.94 MB/s 480 B/op 18 allocs/op BenchmarkDeSerialize/fast/numbers-12 19789 60320 ns/op 2488.80 MB/s 480 B/op 18 allocs/op BenchmarkDeSerialize/fast/marine_ik-12 484 2563776 ns/op 1163.70 MB/s 9166 B/op 18 allocs/op BenchmarkDeSerialize/fast/mesh-12 2559 442351 ns/op 1635.80 MB/s 4317 B/op 18 allocs/op BenchmarkDeSerialize/fast/mesh.pretty-12 2559 437280 ns/op 3607.19 MB/s 2397 B/op 18 allocs/op BenchmarkDeSerialize/fast/twitterescaped-12 5006 222647 ns/op 2526.01 MB/s 1405 B/op 18 allocs/op BenchmarkDeSerialize/fast/twitter-12 5391 226807 ns/op 2784.36 MB/s 481 B/op 18 allocs/op BenchmarkDeSerialize/fast/random-12 2797 432616 ns/op 1179.98 MB/s 2440 B/op 18 allocs/op BenchmarkDeSerialize/fast/update-center-12 2456 442333 ns/op 1205.38 MB/s 4838 B/op 18 allocs/op BenchmarkDeSerialize/best/apache_builds-12 2865 392876 ns/op 323.96 MB/s 338 B/op 15 allocs/op BenchmarkDeSerialize/best/canada-12 320 3749254 ns/op 600.40 MB/s 337 B/op 15 allocs/op BenchmarkDeSerialize/best/citm_catalog-12 1466 790499 ns/op 2184.95 MB/s 345 B/op 15 allocs/op BenchmarkDeSerialize/best/github_events-12 9250 125175 ns/op 520.33 MB/s 337 B/op 15 allocs/op BenchmarkDeSerialize/best/gsoc-2018-12 199 5786683 ns/op 575.08 MB/s 393 B/op 15 allocs/op BenchmarkDeSerialize/best/instruments-12 2269 505081 ns/op 436.26 MB/s 345 B/op 15 allocs/op BenchmarkDeSerialize/best/numbers-12 9284 326905 ns/op 459.23 MB/s 4194792 B/op 16 allocs/op BenchmarkDeSerialize/best/marine_ik-12 200 5895912 ns/op 506.02 MB/s 393 B/op 15 allocs/op BenchmarkDeSerialize/best/mesh-12 691 1699170 ns/op 425.85 MB/s 337 B/op 15 allocs/op BenchmarkDeSerialize/best/mesh.pretty-12 595 1979606 ns/op 796.80 MB/s 358 B/op 15 allocs/op BenchmarkDeSerialize/best/twitterescaped-12 1971 569272 ns/op 987.94 MB/s 342 B/op 15 allocs/op BenchmarkDeSerialize/best/twitter-12 1940 562414 ns/op 1122.86 MB/s 339 B/op 15 allocs/op BenchmarkDeSerialize/best/random-12 961 1202850 ns/op 424.39 MB/s 353 B/op 15 allocs/op BenchmarkDeSerialize/best/update-center-12 786 1366241 ns/op 390.25 MB/s 336 B/op 15 allocs/op PASS
Fuzz tests: https://github.com/minio/simdjson-fuzz/pull/1
Serializes at ~2x the speed in the NDJSON example. De-serializes at ~6x the speed on NDJSON.
Percentages are percentage of original JSON size.
1M records, NDJSON:
1M records, NDJSON de-serialize:
Smaller blocks:
De-serialize blocks:
Fuzz tests: https://github.com/minio/simdjson-fuzz/pull/1