|
Boost : |
From: Dominique Devienne (ddevienne_at_[hidden])
Date: 2019-11-18 09:13:47
On Sun, Nov 17, 2019 at 3:38 PM Vinnie Falco via Boost <
boost_at_[hidden]> wrote:
> [...] RapidJSON is currently the top-performing library for parsing and
> serialization using a general purpose container (I don't count
> SIMDJson, which produces a read-only structure). In comparison to
> RapidJSON, my library outperforms RapidJSON in most cases and
> completely blows away nlohmann [6].
>
Looking at your own benchmarks, that's not obvious to me, at least on the
parsing side.
[6] <https://vinniefalco.github.io/doc/json/json/benchmarks.html>
Regarding those benchmarks, could you please:
1) provide synthetic graphs?
2) better explain what the benchmark does? Those sizes and durations
yield very low throughput numbers,
so you're obviously doing the parsing several times in a loop, so please
adds details on that page, and
calculate the real MB/s throughput as well please. Also peak memory would
be of interest.
3) Smallest files parsed is ~ 600KB, while in some (important IMHO)
use-cases, it's much smaller files
of just a few bytes or low-KBs, but lots of them (thousands, millions). In
such cases, the constant-overhead
of setting up the parser matters and/or instantiating the root value
matters, since might dominate over the parsing time.
Would it be possible to test that use case too please?
Could you also please explain (or link to) on that page the PROs and CONs
of default vs block storage
for boot::json::value? There seems to be a speed advantage, so what's the
catch since not the default?
Thanks for the detailed post and your efforts to propose this to Boost.
Might be my first review. --DD
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk