Comments (7)
@kalicki why closed ?
from web-frameworks.
@waghanza I think something in Clojure would be cool, but I don't have time to implement something at the moment =(
from web-frameworks.
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.
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 stringGET
/user/:id
, SHOULD return a successful status code and the idPOST
/user
, SHOULD return a successful status code and an empty string
Regards,
from web-frameworks.
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.
HI @waghanza, thanks for reaching out! I agree with what @ohpauleez said.
from web-frameworks.
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)
- Add more real world test cases for more accurate results HOT 1
- [Nim] Unify compilation option
- Django: Too much difference b/w results of 2023-05-28, 2023-05-08 HOT 1
- django: asgi vs wsgi? HOT 1
- Add JS/TS frameworks to the benchmark HOT 14
- All Crystal frameworks are using a now deprecated function HOT 6
- Unify Docker image environment for run HOT 1
- [Javascript] Add nitro HOT 4
- [Deno] Add Hono
- Deno HOT 1
- Create multi-threaded benchmark
- [C#/F#] Use TieredPGO HOT 1
- [Haskell] Add Yesod HOT 1
- [OCaml] Add Dream
- [Meta] Schedule Run & misc. suggestions HOT 4
- [F#] Remove DOTNET_TieredPGO env vars HOT 1
- [D] Frameworks issues HOT 12
- [C++] Add uWebSockets
- Benchmark Results Force Reload HOT 4
- Rust axum is not visible in the result site HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from web-frameworks.