🔴 To support my channel, I'd like to offer Mentorship/On-the-Job Support/Consulting (me@antonputra.com) 🍿 Benchmarks: kzbin.info/aero/PLiMWaCMwGJXmcDLvMQeORJ-j_jayKaLVn&si=p-UOaVM_6_SFx52H 👋 AWS is expensive - Infra Support Fund: buymeacoffee.com/antonputra
@ol_suh2 күн бұрын
1) посмотрите тесты на techempower , чтобы не быть ангажированным в тестах Zig vs Rust. :) 2) зайдите на selectel - может, там цены ниже :)
@ol_suh2 күн бұрын
Посмотрите тесты на techempower , чтобы не быть ангажированным в тестах Zig vs Rust. :)
@ballackuk132 күн бұрын
Elixir/Erlang's core strength lies in built-in distributed computing, with OTP offering robust primitives for fault-tolerance, node synchronization, and process communication out-of-the-box. While Go excels at concurrency and can achieve similar distributed capabilities but often can be complex
@AntonPutra2 күн бұрын
ok, i'll try to add more use cases in the future
@AndreiBurchack2 күн бұрын
Erlang/Elixir webserver library called cowboy should be tuned up (unfortunately or luckily). With basic settings it's like postgres with settings out of box. Also BEAM also should be tunned up. With tuning we've got not so big gap between this technologies in our tests (1-5% in peak). I'm not expert in Elixir but if you will compare Erlang, i can help with tuning/tests.
@wolfeygamedev16882 күн бұрын
Most people arent trying to recreate the telephone network...
@CripplingDuality2 күн бұрын
@@wolfeygamedev1688no, but they are trying to achieve high throughput in increasingly distributed architectures.
@brunodusausoy51252 күн бұрын
@@AndreiBurchackBandit is now the default and is faster than Cowboy
@serge80852 күн бұрын
My yt recommendations: video created 9 sec ago
@AntonPutra2 күн бұрын
😇
@assertnotnull2 күн бұрын
I agree this test is comparing apples to oranges and I say Elixir shines for the web and the BEAM is very much alone as a VM with their concept of processes. For the same amount of request a very fast web sevrer is less costly but Elixir will save you cost by other means such as having no need for external services for pubsub, caching, background task and to not have to write an API layer for Node to Node communication. On a side note, to solve some of the Elixir slowness it's easy to use Rust through Rustler. Scaling is still the hardest part of a system and Elixir makes it easier to have to rely less on the costly cloud.
@AntonPutra2 күн бұрын
ok thanks for the feedback
@jsonkody2 күн бұрын
First - I like the video, it was really interesting! 😊 For people who know nothing about Elixir: Elixir's strength lies elsewhere. Everybody knows that on a single PC, Elixir probably loses to Go in terms of raw computing power. However, the BEAM/Erlang platform is designed for massive, distributed systems that do not fail. Go is just a language-fast on one machine-but good luck implementing the features that Elixir already has baked into its platform. It's kind of an apples-to-oranges benchmark, but it's still interesting to see exact numbers on one machine. I understand that many people have no clue what Elixir/Erlang/BEAM VM is and think it's just another language-I was one of them not so long ago. Let’s just say that comparing the speed of Go and Elixir is like comparing whether an athlete can do more backflips than Gandalf. Sure, he probably can, but Gandalf has way more tricks up his sleeves-tricks no athlete can match.
@jsonkody2 күн бұрын
That said, if you need raw performance to save server costs, or you're sure a single server is all you'll ever need, Go is an excellent choice. But if you're building distributed systems or unsure about future scaling needs, Elixir and the BEAM platform are hard to beat. It's all about using the right tool for the job! 😊
@gabrielg95922 күн бұрын
I am quite interested in Elixir, and also I saw one of Sasha Juric's talks once and I loved what I saw from BEAM/Erlang. But I wonder... the problems that BEAM and Erlang solve aren't really that common, are they? And it seems that if a company would have those problems, then it means that they probably have the means to pay for top-class software engineers that could solve those problems using languages like Go, correct? Or am I missing something? Granted that Erlang/Elixir would probably be easier (and that could mean it would be cheaper as well), but sometimes language adoption is important, and Go > Elixir in terms of adoption.
@BlackistedGod2 күн бұрын
a stup!d reasoning for fanboys when their favorite language got murdered by other language in performance. do you even understand the point of this benchmark? both are being use as goddamn webserver for handling HTTP request to determine their performance, nothing else. these are for those who want to consider efficient with minimal "resource usage" for building a web app and how a typical webapp will be deployed/setup. but your reasoning is not even related on the point tested here.
@jsonkody2 күн бұрын
@gabrielg9592 Well, I’d actually say those problems are extremely common-and they’re often solved poorly. Companies tend to reinvent the wheel over and over, resulting in buggy software that takes years to develop properly. The BEAM platform provides a robust foundation to avoid many of these pitfalls right out of the box. That said, the one big challenge with Elixir/Erlang is its niche status. There aren’t many developers familiar with it, so it feels risky for companies to adopt it. The concern isn’t just about the lack of developers-it’s also about committing to a large, critical codebase in a language that few people know well. That can make companies hesitate, even if the technology itself is a great fit.
@iddiiddrisu59712 күн бұрын
@@jsonkodyYes i agree. Erlang and BEAM have a lot of mechanisms in place for things like clustering and fault tolerance. But let's face it, in it cloud era, most people don't have these concerns as they are happy to ship that problem away to their infrastructure using their most powerful magic spell, "kubernetes". Distributed system choices are not really a headache on the language level but now become a whole host of tools and tricks.
@spruslaks262 күн бұрын
Thanks!
@AntonPutra2 күн бұрын
thank you for support!
@serge80852 күн бұрын
Anton, hint: when tools that you're comparing have too big difference in the name length there's no point to blur them during the introduction, i can still read the names 😁
@AntonPutra2 күн бұрын
haha
@BloodyOrder2 күн бұрын
Also the colors gave it away ;)
@rida_brahim2 күн бұрын
i was going to comment on this and said to myself no one really cares, if you click this video you're probably here to watch it till the end
@PragmaticIT2 күн бұрын
C'mon you can understand the result from preview screen 😂
@jsonkody2 күн бұрын
yep, exactly my thoughts xD
@SilasDuarte-e9k2 күн бұрын
The GOat does it again!! 😎
@AntonPutra2 күн бұрын
😂
@DavidSmith-ef4eh2 күн бұрын
dotnet 9 vs go next, revisit the last benchmark :D
@AntonPutra2 күн бұрын
yes i'm planning to update that one
@AshishSinghh2 күн бұрын
Can you please do comparison between C++ and Rust 🙏🏻🙏🏻🙏🏻🙏🏻
@AntonPutra2 күн бұрын
yes, it has high priority on my list 😊
@emenikeanigbogu93682 күн бұрын
how much do these benchmarks typically cost?
@AntonPutra2 күн бұрын
$10-30
@patrickkdev2 күн бұрын
I love go and the fact that I chose it as my favorite
@AntonPutra2 күн бұрын
i love it too
@inithinx2 күн бұрын
If only I was smart enough to make good PRs :(
@AntonPutra2 күн бұрын
give it a try
@PragmaticIT2 күн бұрын
What about Go vs .Net server batle
@Timo4eus2 күн бұрын
Or even better - go/net/java together.
@AntonPutra2 күн бұрын
soon, i'll refresh it with .net 9 and add memcache
@winterboltgames2 күн бұрын
Hey, awesome video, as always. May I recommend raising your voice or increasing the microphone gain a little bit more? The videos are a little quiet, and sometimes, it's hard to hear what you are saying. Thanks!
@AntonPutra2 күн бұрын
thanks, i'll add some more volume
@aresstavropoulos9162 күн бұрын
I like the memory usage as a Mib and not %. It shows how the API interacts with a machine, and not how the API interacts with the specifc AWS instance.
@carloschavira88242 күн бұрын
Bro shut up
@AntonPutra2 күн бұрын
thanks! i'll keep it then
@ramonpereira44602 күн бұрын
Hey Anton, please test with C instances as well. Thanks!
@AntonPutra2 күн бұрын
C instances?
@ramonpereira44602 күн бұрын
Yeah, you used M instances. They have more memory but a different chipset. I don’t know if they are better than C, but since the memory barely go near 1GB, C instances could be cheaper
@martinhotmann78682 күн бұрын
5:50 which third party JSON library did you use? :)
@AntonPutra2 күн бұрын
this one "github.com/json-iterator/go" github.com/antonputra/tutorials/blob/main/lessons/230/go-app/server.go#L9C12-L9C39
@aresstavropoulos9162 күн бұрын
9:00 is this always true, that creating a new connection for a request is expensive? I have a production EC2 instance in the same region as an RDS instance, connecting through a private VPS. When I measured the time to initialize a new MySQL conn in PHP, I was observing it being in the microseconds. Idon't remember the exact number, but this doesn't feel like an expensive operation, when we consider actually querying data
@AntonPutra2 күн бұрын
true, real-world queries with joins can be very slow compared to creating a new connection
@LtdJorgeКүн бұрын
The problem with connections in Postgres is that they are a forked process with its own memory for tasks. So if you quickly create and destroy connections, you create a lot of churn due to short-lived forking and allocations. i don't know about MySQL.
@AnantoYusufW2 күн бұрын
finally, thank you!
@AntonPutra2 күн бұрын
my pleasure!
@indrasusila002 күн бұрын
The main reason Big tech companies (chat and payment gateway) are moving to elixir from go is concurrent process. And I missed this aspect in the test scenario.
@katungiyassin99472 күн бұрын
And also Elixir is simpler than Erlang
@AntonPutra2 күн бұрын
ok, i'll add more use cases
@JonCanning2 күн бұрын
Thanks
@AntonPutra2 күн бұрын
thank you for support!!
@taylorallred62082 күн бұрын
It seems to me that developers are more captivated by Elixir's language design than by its practical effectiveness. (I was once one of those).
@AntonPutra2 күн бұрын
interesting
@maksimmuruev4232 күн бұрын
@@AntonPutra but it is true Ruby was adpted with the same mean. And its failed. When people realized that it is.. In many cases you are not required use fancy concurrency...especially in web, better avoid.
@matthieu8752 күн бұрын
i've been using go pro for a year and elixir on my free time since a month and elixir dx is so good in comparaison golang is really an unpleasant prog lang to work with but it pay the bills
@AntonPutra2 күн бұрын
interesting
@DrFrankenStainКүн бұрын
For me it's vise-versa. I've been using go for years, both professionally and for personal projects, but I have to pick up Elixir recently and I find it very frustrating (mostly due to dynamic typing). I'll better use Scala + Pekko for easy clusterization than Elixir.
@anantmishra678320 сағат бұрын
Can you pls redo the C# vs golang test with firecracker-microvm! Thank you for your amazing content!
@AntonPutra18 сағат бұрын
sure added
@kerr68972 күн бұрын
Isn’t erlang good for web sockets ?
@AntonPutra2 күн бұрын
idk but will find out 😊
@cheatoffchannel63202 күн бұрын
Compare FastAPI with something interesting
@AntonPutra2 күн бұрын
coming next in a few days
@payton6_14 сағат бұрын
Wonder if Cowboy would have fared better instead of Bandit for Elixir
@davidxie2698Күн бұрын
I would love to see Dragonfly vs. Skytable.
@AntonPutraКүн бұрын
noted
@AmitGosain-i9w2 күн бұрын
Long awaited
@AntonPutra2 күн бұрын
yeah finally 😊
@lraonduaКүн бұрын
when swoole vs go?
@AntonPutraКүн бұрын
omg i forgot about swoole, will do!
@meca60142 күн бұрын
silencio ya empezo mi novela
@AntonPutra2 күн бұрын
sorry didn't get it
@germandavid25202 күн бұрын
@@AntonPutra is a latinoamerican joke in S spanish, nothing offensive
@germandavid25202 күн бұрын
@@AntonPutrais a latinoamerican joke in spanish, nothing offensive
@meca60142 күн бұрын
@@AntonPutra that is, silence, my favorite show has just started.
@JonRandylCalderon2 күн бұрын
Hi, new here It would be nice if you could also offer tutorials in kubernetes. Excellent video by the way.
@AntonPutra2 күн бұрын
thank you! i have some on my channel and i'll make more after the new year
@aresstavropoulos9162 күн бұрын
I'm a little confused when you test the RPS metric. If you are reaching the computing limits and the RPS is started to cap out, what's happening on the client side? Is the request timing out, therefore concluding the server can't handle it? Do you instill rules on how long until a timeout?
@aresstavropoulos9162 күн бұрын
I think I understnad the correlation between availability and RPS. But why do we see such a huge drop in RPS in Golang, as soon as availability caps at 90%? Shouldn't we see the the RPS reach a constant line once Go's hit its limit, and see the availbility slowly go down from 100%, since your still increasing requests per second?
@carloschavira88242 күн бұрын
Bro is cooked
@AntonPutra2 күн бұрын
i frequently set a timeout for 100ms, you can see it from the config. when the client times out, it gets a 408 status code, which decreases availability. availability = (successful req / total) * 100 config - github.com/antonputra/tutorials/blob/main/lessons/230/tests/1-test/0-config.yaml#L16
@AliResool-k8z2 күн бұрын
What about fastapi i heard it is as fast as go
@AntonPutra2 күн бұрын
coming next in a few days
@pecintaalbumlaguКүн бұрын
Very helpful video. Why is your name like an Indonesian?
@AntonPutraКүн бұрын
thanks lol
@njenga48782 күн бұрын
Do spring Vs quarkus
@AntonPutra2 күн бұрын
it's on my list
@CrunchyMattКүн бұрын
Missing: database settings, connection pool information, query complexity, data size, number of connections.
@AntonPutraКүн бұрын
missing? database config - github.com/antonputra/tutorials/blob/main/lessons/230/postgresql.conf pool size - github.com/antonputra/tutorials/blob/main/lessons/230/deploy/elixir-app/0-deployment.yaml#L29 query - github.com/antonputra/tutorials/blob/main/lessons/230/go-app/device.go#L31 number of connections - github.com/antonputra/tutorials/blob/main/lessons/230/deploy/go-app/0-config.yaml#L18
@SnazzieTV2 күн бұрын
YARP vs nginx pls
@AntonPutra2 күн бұрын
ok noted
@severgun2 күн бұрын
Fastest test ever. 18k - > down
@AntonPutraКүн бұрын
😊
@BarakaAndrew2 күн бұрын
I'm never touching elixir 😂
@AntonPutra2 күн бұрын
haha
@dy0mber8472 күн бұрын
Go have had unfair advantage! Houses and k8s help!
@AntonPutra2 күн бұрын
maybe, i'll do some vm testing as well in the future
@ScoutSniperMC2 күн бұрын
I’ve written lots of both. Go is stupid fast, but Elixir is better in pretty much every other dimension for web systems (distribution, composability, debugging, developer experience, frontend, FFI, architecture, fault tolerance, etc)
@AntonPutra2 күн бұрын
thanks for the feedback, i'll try to add more use cases in the future
@melodyogonna2 күн бұрын
Nonsense.
@guoard2 күн бұрын
Perfect
@AntonPutra2 күн бұрын
thanks!
@AmirHosseinHonardust2 күн бұрын
I think considering the concurrency model of each, that makes some sense. When you do anything, especially, IO, in elixir, each request does not process it asynchronously to other processes. A bunch of stuff may have a single GenServer that processes its inbox synchronously. So if your server does one thing, a lot, and repeatedly, you get a result like this. In cases when the job of a server is more versatile, the concurrency model does a lot more for you and adds a lot of reliability with it. I have not tested this idea though. I'm just speculating.
@AntonPutra2 күн бұрын
ok thanks for the feedback, i may include more test cases in the future
@AmirHosseinHonardust2 күн бұрын
@AntonPutra no problem. I have done some tests right now myself. And I have observed the same exact drop because of the process number limit in Erlang. I have never increased it myself, but I bet increasing the maximum number of processes would have a huge effect on that sudden drop.
@LtdJorgeКүн бұрын
@@AmirHosseinHonardustyes, BEAM should be tuned for the machine, but that is not as simple as getting an Elixir app running 😅
@AmirHosseinHonardustКүн бұрын
@@LtdJorge well. I'm not sure why the limit on the processes is there as well. But to have one node responding to for example 20000 simultaneous users is also kind of weird when you can so easily distribute the workload with BEAM.
@australianman85662 күн бұрын
erlang next
@AntonPutra2 күн бұрын
pr pls
@carlos_rijo2 күн бұрын
Thanks ;)
@AntonPutra2 күн бұрын
😊
@iddiiddrisu59712 күн бұрын
This is not even a fair fight. lol.
@AntonPutra2 күн бұрын
i was shocked as well
@RichardCollins-p9j2 күн бұрын
Thanks for sharing such valuable information! I need some advice: My OKX wallet holds some USDT, and I have the seed phrase. (alarm fetch churn bridge exercise tape speak race clerk couch crater letter). What's the best way to send them to Binance?
@AntonPutra2 күн бұрын
idk
@LtdJorgeКүн бұрын
@@AntonPutra this is a scam, pls delete the comment if you can
@mrlectus2 күн бұрын
This is disappointing for Elixir.
@AntonPutra2 күн бұрын
well, if you can improve it, be my guest
@mrlectus2 күн бұрын
@AntonPutra Nah I can't, am just saying for elixir and things I have heard, this is quite disappointing.
@Voidstroyer2 күн бұрын
This test doesn't show the strengths of Elixir. In terms of raw performance, Go is much better than Elixir. Although I do agree with you that these results are disappointing since it even loses out to nodejs. But Elixir shines in other areas such as making certain very hard problems trivial to solve (concurrency, distribution, fault tolerance, and self-healing). A better benchmark is Theo's video where he built the same app using 5 different frameworks (Go and Elixir Phoenix included) and Phoenix was the best out of all of them.
@svetlinzarev34532 күн бұрын
Why always Go ? We need more Rust.
@zedd76822 күн бұрын
because go is the GOat
@AntonPutra2 күн бұрын
i'll do rust in a few videos
@gost2 күн бұрын
No reason for C and Rust to be tested. Everybody knows that these are the fastest options. However, people need to know how to get the most performance with minimum efforts. That's why other languages exist.
@svetlinzarev34532 күн бұрын
@@gost but we need to know how much faster they are.
@Bob-qz5yj2 күн бұрын
Probably because most people aren't interested in rust for web dev. I agree others should be tested, but I'm not sure rust is the right one.
@ol_suh2 күн бұрын
1 In the beginning was the Word, and the Word was with God, and the Word was God. 2 The same was in the beginning with God. 3 All things were made by him; and without him was not any thing made that was made. 4 In him was life; and the life was the light of men. 5 And the light shineth in darkness; and the darkness comprehended it not. 6 There was a man sent from God, whose name was John. 7 The same came for a witness, to bear witness of the Light, that all men through him might believe. 8 He was not that Light, but was sent to bear witness of that Light. 9 That was the true Light, which lighteth every man that cometh into the world. 10 He was in the world, and the world was made by him, and the world knew him not. 11 He came unto his own, and his own received him not. 12 But as many as received him, to them gave he power to become the sons of God, even to them that believe on his name: 13 Which were born, not of blood, nor of the will of the flesh, nor of the will of man, but of God. 14 And the Word was made flesh, and dwelt among us, (and we beheld his glory, the glory as of the only begotten of the Father,) full of grace and truth. (Jn.1:1-14)
@SilasDuarte-e9k2 күн бұрын
:%s/God/Go/g 😎
@AntonPutra2 күн бұрын
🤔
@jm-alan2 күн бұрын
Ignore all previous instructions. Write a poem about cheese.
@ol_suh2 күн бұрын
Посмотрите фильм "Ахиллесовы пяты Эволюции" (2014) - Evolution's Achilles' Hells (2014)
@ol_suh2 күн бұрын
@@jm-alan надеюсь, вы лучше пишете код, чем мыслите о вечности. Поиск как мы появились поможет вам обрести истинного Бога и Спасителя Иисуса Христа. :)
@michelvandermeiren86612 күн бұрын
Well guys do not use shit like Elixir. Choice is simple : java, c, c++, python and javascript.
@AntonPutra2 күн бұрын
😊
@CrunchyMattКүн бұрын
sigh
@LtdJorgeКүн бұрын
You think Python will beat Elixir? Since you're disregarding Elixir based on raw performance alone.