Giter Club home page Giter Club logo

Comments (9)

tshepang avatar tshepang commented on July 3, 2024 2

I can't reach the site, http://json.rs

from json-benchmark.

dtolnay avatar dtolnay commented on July 3, 2024 1

That sounds great! If you haven't already, take a look at perf.rust-lang.org for inspiration. They even have graphs of performance at a couple-hours granularity.

The other thing I would love to have that is relevant to this is a cloud server for running the benchmark so it isn't just "David's 4 year old laptop." Since you are paying for json.rs I can pay for an AWS instance to run once a day or so.

from json-benchmark.

maciejhirsz avatar maciejhirsz commented on July 3, 2024

Aye, EC2 would be nice. It should be relatively managable to get nativejson-benchmark to run on it too. That way the page can serve not just as a curiosity for us, but also help popularize the language itself.

from json-benchmark.

maciejhirsz avatar maciejhirsz commented on July 3, 2024

Ok, this is just strapped together with an insane amount of duct tape, but it works:

http://json.rs/

Need to abstract things out, do graphs for all files, etc. etc.

It's parsing the README from the repo here, so changes will update the graph.

from json-benchmark.

maciejhirsz avatar maciejhirsz commented on July 3, 2024

@dtolnay the website is now somewhat usable, should we include it in the README / description?

from json-benchmark.

dtolnay avatar dtolnay commented on July 3, 2024

Very nice! Yes go ahead and include a link.

Have you tried transposing the results so all the parses are next to each other and all the stringifies are next to each other?

serde_json dom parse
serde_json struct parse
json-rust dom parse
rustc_serialize dom parse
rustc_serialize struct parse
rapidjson dom parse

serde_json dom stringify
serde_json struct stringify
json-rust dom stringify
rustc_serialize dom stringify
rustc_serialize struct stringify
rapidjson dom stringify

You almost never want to compare parse performance vs stringify performance so it seems like the current arrangement makes it unnecessarily hard to compare the things you do want to compare, which is performance across libraries. We can use this as

I have no time this weekend but I would like to include a little more explanation/analysis of each test. We should be able to use this to explain at a technical level what features account for the results - things like:

  • The difference between DOM vs struct parsing and how struct parsing will likely do fewer memory allocations so that probably accounts for much of the difference there
  • How the json-rust number type works.
  • Difference between how serde and rustc_serialize do struct parsing that accounts for the reversed relationship of faster DOM vs faster struct.
  • What it means to "optimize for key lookup performance" (that line means nothing to me even though I mostly understand the implementation details).

We can hide the analysis behind an accordion if you want to keep the landing page minimal.

from json-benchmark.

maciejhirsz avatar maciejhirsz commented on July 3, 2024

I was thinking about organizing the graphs better, will look into it tomorrow, I'm pretty done for tonight :). You can disable parsing / stringifying on the graphs as they are, but the rescaling seems buggy, makes me want to look into some other graph libs.

from json-benchmark.

nico-abram avatar nico-abram commented on July 3, 2024

I can't reach the site either @maciejhirsz

from json-benchmark.

maciejhirsz avatar maciejhirsz commented on July 3, 2024

It's been a long time since 2016, I've let the domain go :P.

from json-benchmark.

Related Issues (15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.