AstonJ
Benchmarks - how important are they to you? To Elixir?
Inspired by @atraac’s post here - how important are benchmarks to you and how important do you think they are to languages like Elixir? (Languages where performance and scalability are some of their biggest selling points.)
As has come up in conversation in a few threads over the years, there seems to be a general frustration with benchmarks like the Techempower ones because they don’t really reflect real life usage. That’s particularly bad for Elixir and Erlang because real life situations is what they excel at!
Yet despite this, we continue to be swayed by them - I suppose we simply resolve to the fact that they at least provide ‘some’ insight, and while this may not be true for the most experienced of developers, for the majority (or at least a significant proportion) it appears to be it appears to be a relevant and important factor.
I know that when I was first drawn to Elixir the benchmarks where Phoenix (and Plug) were outperforming frameworks like Go’s Play and Gin played a fairly significant part in influencing my decision to try Elixir, and I saw it generate excitement in others too. At the very least, I think they help reinforce your decision and make you feel good about your choice. As with many things in life, all the little things add up, and I think benchmarks is definitely one of those things when it comes to tech.
Many of us have also seen Rust’s popularity sky-rocket of late, and it doesn’t seem unremarkable that part of this may be due to its place at the top of the Techempower benchmarks.
Personally I think it’s difficult to argue against benchmarks playing a role in the developer decision making process (and thus adoption) but what do you think? Do you think benchmarks are important for you and languages like Elixir?
Most Liked
al2o3cr
People who don’t understand what they’re talking about, yes.
TBH reading into the shenanigans around Actix and some of the other “top speed” competitors has negatively affected my opinion of Techempower in particular because it’s gotten so artificial; like 1000HP supercars that are fun to drive on a track but get 25 miles to a tank of gas.
Qqwy
I use benchmarking solely to decide between multiple potential implementations if their other characteristics are identical so it comes down to what is most performant.
I see little value in comparisons between languages. In general runtime- and/or memory-efficiency is not usually the most important factor in the apps I am building on a day to day basis, so I prefer to make decisions based on developer efficiency/short- and long-term maintainability instead.
atraac
Like I mentioned in my post, I understand that most technical people know that benchmarks(techempower especially) do not represent the real life. But besides developers, there’s also a ton of other people in the industry that are more easily influenced by medium articles, benchmarks and other stuff that in turn can influence tech used by given company.
I feel like techempower shows Elixir in a bad light. I know that we want to present f.e. Phoenix in a fairly real-life approach, but the truth is, no other framework there does it.
I’ve seen .NET implementations for techempower. I would not ever, EVER, in my life write API like that, using Spans and hardcoded, static headers. But people still use the argument that .NET(Core+) is ‘fast’ and ‘high in benchmarks’, half of reddit is wet just thinking about ‘how fast .NET Core is’ now, while none of them probably have ever implemented something that has to have a sub 100ms response time, or was ever bottlenecked by setting date in a header…
What I meant with that post especially, is that I’d love to see more knowledgeable people in Elixir community, try to optimize the hell out of that benchmark, to show to the ‘outside world’ that we can do it as well. I’m too far of a scrub in this matter yet, to help with really anything(though if I can, I’d love to).
Would be awesome to have a benchmark of real-life framework implementations that @AstonJ mentions here as well.
In my mind, these benchmarks are more of a marketing statement for frameworks/languages, rather than anything else. People all over the internet keep quoting techempower when they consider speed of certain stacks. Do they know that that implementation in no way represents their CRUD WebApp that will be bottlenecked by IO anyway? Of course. Do they care? I honestly don’t think so. I keep bringing techempower as an example, because as a backend developer, this is really the only ‘benchmark’ that I know of(besides https://benchmarksgame-team.pages.debian.net/ which is even more questionable), which I think speaks of its popularity somehow. Also just googling stuff like ‘web framework benchmark’ has them on the top.
I think that there’s a lot of things that people care about when deciding on a stack and I’m sure that topping benchmarks won’t suddenly make Elixir the coolest kid on the block, but I think it would be a step in the right direction.
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









