rust-bakery / parser_benchmarks

Benchmarks for the nom, the Rust parser combinators library
123 stars 20 forks source link

Add pom benchmarks #26

Closed ebkalderon closed 5 years ago

ebkalderon commented 5 years ago

It would be nice to add some benchmarks for pom, a PEG parser combinator library similar to nom that eschews macros in favor of regular Rust functions and operator overloading. It would be interesting to see how well it stacks up against the other libraries.

I would be happy to try to port the upstream JSON (u8) and JSON (char) pom examples as benchmarks, but I'm not sure how I am supposed to benchmark and render the results into Markdown. Any help on how to do this reliably and reproducibly would be appreciated.

Geal commented 5 years ago

nom 5 will use functions now :) Although, no operator overloading, since it's directly manipulating functions, not structs. I'd be happy to merge the benchmarks for pom. Don't worry about rendering the results to markdown, I'll handle it, since it should be run on the same machine as the other ones

ebkalderon commented 5 years ago

That's wonderful! I've been reading about the progress of nom 5, and I am eager to play around with it. Though I do personally prefer the readability of a PEG-like parser of pom, I'm equally considering a scannerless parser like nom for my own experimentation.

And thanks for the heads-up about the Markdown rendering. I'll port the JSON benchmarks over as soon as I can and open a pull request. I might create pom equivalents for the other benchmarks in subsequent PRs as well, just for good measure.

ebkalderon commented 5 years ago

Okay, I've opened a new pull request containing just the two JSON benchmarks to start with (#27). Please let me know if you are interested in having the HTTP benchmark ported over as well!