Giter VIP home page Giter VIP logo

Comments (4)

agrue avatar agrue commented on May 22, 2024

I am working on a set of criterion benchmarks.

from proto-lens.

agrue avatar agrue commented on May 22, 2024

Some updates... adding criterion benchmarks was quite simple. So I'm currently trying to figure out what a reasonable initial set of benchmarks looks like. The only thing remotely like a "standard benchmark" I could find was here: https://github.com/google/protobuf/tree/master/benchmarks. But I'm not sure we benefit much from imitating it; it looks like a raw speed test for a single large, heterogeneous proto. It seems more interesting to me to have a larger number of small, focused test cases to help uncover pathological cases (at least right now, with our largely unoptimized code).

So for the initial PR I guess I'll just come up with a small set of test cases that make sense to me. If anyone disagrees with the above or has any requests for specific benchmarks, please respond here. :)

from proto-lens.

judah avatar judah commented on May 22, 2024

That plan sounds great; thanks for taking this on!

Eventually we should test the effect of proto-lens putting all fields in a single, immutable, flat Haskell record. For large protos my guess is it's significantly less efficient (in particular, for decoding) than languages which can do updates by mutating a single field. The standard benchmark might help us examine that use case.

from proto-lens.

judah avatar judah commented on May 22, 2024

Closing since the current set of benchmarks has proven useful so far. If we run into any particular bottlenecks in the future, we can add more specific benchmarks as needed.

from proto-lens.

Related Issues (20)

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.