Fastest JSON parser in the world is a D project
Marco Leise via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Sat Oct 17 04:30:47 PDT 2015
Am Sat, 17 Oct 2015 08:29:24 +0000
schrieb Ola Fosheim Grøstad
<ola.fosheim.grostad+dlang at gmail.com>:
> On Saturday, 17 October 2015 at 08:20:33 UTC, Daniel N wrote:
> > On Saturday, 17 October 2015 at 08:07:57 UTC, Martin Nowak
> > wrote:
> >> On Wednesday, 14 October 2015 at 07:35:49 UTC, Marco Leise
> >> wrote:
> >>> - Data size limited by available contiguous virtual memory
> >>
> >> Mmaping files for sequential reading is a very debatable
> >> choice, b/c the common use case is to read a file once. You
> >> should at least compare the numbers w/ drop_caches between
> >> each run.
The results are:
* The memory usage is then fixed at slightly more than the
file size. (While it often stays below when using the disk
cache.)
* It would still be faster than copying the whole
thing to a separate memory block.
* Depending on whether the benchmark system uses a HDD or SSD,
the numbers may be rendered meaningless by a 2 seconds wait
on I/O.
* Common case yes, but it is possible that you read JSON that
had just been saved.
> > It's a sensible choice together with appropriate madvise().
Obviously agreed :). Just that in practice (on my HDD system)
it never made a difference in I/O bound sequential reads. So I
removed posix_madvise.
> Mmap is very expensive, as it affects all cores, you need a
> realistic multithreaded aync benchmark on smaller files to see
> the effect.
That's valuable information. It is trivial to read into an
allocated block when the file size is below a threshold. I
would just need a rough file size. Are you talking about 4K
pages or mega-bytes? 64 KiB maybe?
--
Marco
More information about the Digitalmars-d-announce
mailing list