Giter VIP home page Giter VIP logo

Comments (7)

waghanza avatar waghanza commented on May 27, 2024

@kalicki why closed ?

from web-frameworks.

kalicki avatar kalicki commented on May 27, 2024

@waghanza I think something in Clojure would be cool, but I don't have time to implement something at the moment =(

from web-frameworks.

OvermindDL1 avatar OvermindDL1 commented on May 27, 2024

These are still good ideas though for someone to implement (which is always a good task to learn a language/framework too!). :-)

from web-frameworks.

waghanza avatar waghanza commented on May 27, 2024

Hi @redinger @ddeaguiar,

Would you mind to add (or consent that we add) pedestal in here ?

This project compare performance based on 3 routes :

  • GET /, SHOULD return a successful status code and an empt²y string
  • GET /user/:id, SHOULD return a successful status code and the id
  • POST /user, SHOULD return a successful status code and an empty string

Regards,

from web-frameworks.

ohpauleez avatar ohpauleez commented on May 27, 2024

Hi @waghanza -- Very commendable work here pulling all these languages together in a single benchmark! I particularly don't like chasing benchmark games because I think they're disingenuous to most users and I don't have a lot of spare time to keep on another benchmark (I keep an eye on the TechEmpower ones). It's not clear what demonstrable value the benchmark has -- eg: What does this benchmark really tell you?
There's also another version of Pedestal being used/developed internally in some production systems that performs over an order of magnitude better than the current version (in goodput and latency) -- our attention is mostly focused on getting that ready to be rolled back into the open source project.

I'd prefer Pedestal to be left out of the benchmark, but you're free to do whatever you'd like.
Some tips if people attempt to do this on their own:

  • Use a custom chain-provider (tailored to whatever platform you want to run on).
  • Use static byte-buffer/byte-array responses to minimize GC churn
  • Don't adhere to the Ring-spec (it's memory inefficient), just code directly to the platform you're on
  • When you profile, pay particularly close attention to eden-generation GC churn
  • Use a custom interceptor stack, don't use the default interceptors (you won't need them in the benchmark)
  • Test various router setups. You might find with such a small set of routes, a simple cond will out perform everything (especially if no one else is using an actual router)

from web-frameworks.

ddeaguiar avatar ddeaguiar commented on May 27, 2024

HI @waghanza, thanks for reaching out! I agree with what @ohpauleez said.

from web-frameworks.

waghanza avatar waghanza commented on May 27, 2024

Hi @ddeaguiar @ohpauleez,

I understand the argues employeed. This benchmarks is not about making any competition between languages or frameworks.

I think, the more valuable here is to display some indicators (performances for now, but consumption will come) and to show how the frameworks could be written.

The implementation are simple (we take care of this), and useful for both decision makers and framework's author

Why for decision makers ?

Show indicators (a fair point is that this project is still young, and we will improve)

Why for frameworks author ?

Showing indicators could lead to questions about a more efficient implementation


We are aware that the purpose of this project could be mis-understood, but we are here to help ❤️


PS : We (at least I) won't accept any contribution that add pedestal if you are not giving you consent. I think it could be totally understandable if you do not want pedestal here ❤️

from web-frameworks.

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.