Fastest JSON parser in the world is a D project
Laeeth Isharc via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Tue Oct 20 21:17:16 PDT 2015
On Wednesday, 14 October 2015 at 07:01:49 UTC, Marco Leise wrote:
> The test is pretty simple: Parse a JSON object, containing an
> array of 1_000_000 3D coordinates in the range [0..1) and
> average them.
>
> The performance of std.json in parsing those was horrible still
> in the DMD 2.066 days*:
>
> DMD : 41.44s, 934.9Mb
> Gdc : 29.64s, 929.7Mb
> Python : 12.30s, 1410.2Mb
> Ruby : 13.80s, 2101.2Mb
>
> Then with 2.067 std.json got a major 3x speed improvement and
> rivaled the popular dynamic languages Ruby and Python:
>
> DMD : 13.02s, 1324.2Mb
>
> In the mean time several other D JSON libraries appeared with
> varying focus on performance or API:
>
> Medea : 56.75s, 1753.6Mb (GDC)
> libdjson : 24.47s, 1060.7Mb (GDC)
> stdx.data.json: 2.76s, 207.1Mb (LDC)
>
> Yep, that's right. stdx.data.json's pull parser finally beats
> the dynamic languages with native efficiency. (I used the
> default options here that provide you with an Exception and
> line number on errors.)
>
> A few days ago I decided to get some practical use out of my
> pet project 'fast' by implementing a JSON parser myself, that
> could rival even the by then fastest JSON parser, RapidJSON.
> The result can be seen in the benchmark results right now:
>
> https://github.com/kostya/benchmarks#json
>
> fast: 0.34s, 226.7Mb (GDC)
> RapidJSON: 0.79s, 687.1Mb (GCC)
>
> (* Timings from my computer, Haswell CPU, Linux
Very impressive.
Is this not quite interesting ? Such a basic web back end
operation, and yet it's a very different picture from those who
say that one is I/O or network bound. I already have JSON files
of a couple of gig, and they're only going to be bigger over
time, and this is a more generally interesting question.
Seems like you now get 2.1 gigbytes/sec sequential read from a
cheap consumer SSD today...
More information about the Digitalmars-d-announce
mailing list