Go IS Slower Than PHP | Prime Reacts
HTML-код
- Опубликовано: 1 окт 2024
- Recorded live on twitch, GET IN
/ theprimeagen
Reviewed YT Short: • Is PHP really that slow?
By: Andrew Schmelyun | / @aschmelyun
MY MAIN YT CHANNEL: Has well edited engineering videos
/ theprimeagen
Discord
/ discord
Have something for me to read or react to?: / theprimeagenreact
Hey I am sponsored by Turso, an edge database. I think they are pretty neet. Give them a try for free and if you want you can get a decent amount off (the free tier is the best (better than planetscale or any other))
turso.tech/dee...
Mojo claim to be 35,000 times faster than Python -> C is 80 times faster than Python -> Mojo 437.5 times faster than C -> Mojo faster than machine code
mojo highjacks the fundamentals of physics by giving electrons monster energy, making them able to speed up how much clock cycles they can do per second without heating up as much. it's complicated you wouldn't get it.
Meanwhile C and C++ instead of using hydrolyctic electron excitation, they're still just generating raw instructions... so arcane... sigh
I think it’s based of the fact that mojo is capable of utilizing parallel hardware like GPUs and TPUs for certain tasks. I suppose it’s similar to claiming that CUDA/OpenCl are faster than C
me when mojo for loop be 50x slower than c
I think optimized C is 45,000 times faster than anyform of Python
It is, for that specific test case.
Python is faster than Rust.
Always has been
just a dream 🤭
@@O...Maiden...O A fever dream.
Who cares😂
And javascript is 20x faster than typescript (people quoting that research paper always makes me chuckle)
Even if the benchmark might not be accurate when comparing to other languages, you have to admit that making a PHP script go from 630 requests/sec to nearly 30k requests/sec is a massive improvement.
I'm pretty sure databases are the main bottlenecks and the source of troubles for 99% of backend applications.
Juniors who have no experience of tackling serious performance issues in backend systems, tend to like this kind of discussions.
And the most important thing to build performant backend systems is, monitoring or utilizing APMs like DataDog and NewRelic.
For a lot of companies, poor database design and maintenance is a major issue. I was brought in to one company and I asked if there were any DBAs and was told we used to have DBAs, but not now. The dev database server was running out of disk space so a ticket was put in to double the diskspace. I looked a the database and just ran a script to shrink the logs and recovered 75% of the existing disk space. I am not a DBA, but as a database developer I have had to perform more DBA tasks in the last few years because companies decided they didn't need DBAs they had full stack engineers.
Maybe, but wouldn't HDD be worse still? A lot of fat frameworks and CMSes and PHP projects not optimized/compiled/cached/whatever, have a ton of file reads, which would be much slower than DB.
@@alexaneals8194 Great insight of engineering! Thanks for sharing.
The baseline PHP test was done with the internal server which is meant for quick and dirty testing/dev, not production. PHP-FPM is far faster than that, especially if configured properly for production
True
The benchmark has a lot of flaws
And autoloading, JIT, Opcache configuration. Besides, frankenphp 1.0 was released a few days ago, would be interesting to try it.
But... but it's fun to make fun of PHP. Yeah, there's far too many people that just don't know better.
That's always the case with PHP tests isn't it, they basically rig them. Techempower composite score is the only score i trust.
@@neptronixSwoole sits at no. 33 on the latest Techempower composite scores. There’s nothing rigged about it. It’s very, very fast. Frameworks like Hyperf that are built around it can handle way more requests/sec than Node.
I've been using PHP since 2002. I've seen the good, the bad and the ugly. In recent years I started seeing PHP going from ugly, to bad, to good, to great.
Still, in the long run I am hoping for Rust/WASM to be able to have full access to the browsers DOM without the need for JavaScript. That would change everything.
True. PHP truly evolves in a way that boosts businesses a lot. Now, you can do anything in PHP except low-level stuff, but for low-level, you choose C or Rust.
Yea me too, but is really impossible to be faster than go. It really improved the performance no doubt, but not that way.
@@agustingomez7172php is basicly C. Why c can not ve faster then go?
Except that 90% of PHP devs are stuck in their ways of writing overly dynamic code without any type declarations. Even when working in something as critical as a billing application
I've been making my own framework with OpenSwoole for a while. I can confirm, it is faster than Bun and while I haven't tested Go, it can't be that much slower. Although you have to take into consideration that Go is compiled, and this speed is only in a vacuum. Once you start building out ALL the rest of the application Go will, of course, be faster. On top of that, the OpenSwoole library is not actually PHP. It's an extension, written in C++.
I had a record of 600k RQPS with Go, on TechEmpower I can clearly see fasthttp of Go having 350K RQPS on DB Query while Swoole has 300k
Funny how the base compare is with a PHP development server (which should never be used in prod), would like to see how PHP-FPM or the apache module performs, not a dev server.
Apache mod is dead, nobody uses it these days
@@aragnophy Haha, good one.
I think noone should use it anymore, but I definitely saw it being used in prod. Nobody is stopping one from setting it up today with modern PHP, so I think enough ppl will still set it up, even though they should use php-fpm instead.
Enough GO. It's time for PHP, again.
PHPagen
go PHP()
PHPs integrated server (the first benchmark) is a development server. It doesn't even use multiple workers by default. It's not meant to be used in production. Of course, the second benchmark is also inaccurate because it benchmarks OpenSwole and PHPs JSON implementation which are both written in C, not PHP.
same thing happens to a lot of langs, Python always tries to be as fast as C, by using libs written in C.
Is a common thing to do.
@@mvargasmoran Basically all high level languages reach those benchmarks by using low-level libraries under the hood.
You'll be surprised to know that most of Node's runtime is also written in C++.
I mean PHP is essentially bindings for C and it's libraries. It's always been capable of being fastafbois. You'd obviously never use a PHP based JSON parser in PHP when you can use the native functions to hand that work to C. I think this is a more realistic benchmark than say, arithmetic in a tight loop.
fare/unfare, lol, who cares ? you can do it faster. period.
and that most high level langs use C/C++ under the hood (including JS) everybody has already told you above.
Actually, php is fast enough...
Aaron Francis
Virgin rustard developer vs chad swoole PHP expert
Hey, that’s my video!
Appreciate the dig through it, lot of valid points in those comments. If you’re ever in the mood to dig into PHP sometime, let me know! 😂
PHP is a great language. Just let it be.
tl;dw; If your PHP application uses an HTTP server written in C/C++ and doing nothing except calling two functions written in C then PHP is faster than GO :D
Php devs can't take a break 😂😂😂
All the mockery
Blazingly fast! Laravel Octane just wraps the PHP Laravel up inside of a go routine and keeps it all in memory. Pretty cool advancement, PHP lives to fight another day.
PHP is king. No doubt about it.
"PHP is faster than Go!"
"Cool! How did you do it?"
"...Wrapped it in go..."
That's true if you use Roadrunner, if you use Swoole it's just PHP.
Nonetheless it's a great alternative if you need the extra performance.
@@enkiimuto1041 Dude, do you understand that power to use powers of other powers? That basically neglects the need for the usage of any other language except if you want to go low-level. You have amazing developer experience, and all stuff is ready in PHP/Laravel & PHP can use extensions like Swoole or Parallel or even use Go capabilities while Go can't use the capabilities of PHP!
@@HT-hj5jp it is wise to think so. Fast developement with PHP, and fast speed with extensions in c/c++/go. Best dev expereince and top performance, why not?
Excuse my ignorance but, if I understand correctly, prime is saying that the benchmark is misleading or something like that. Why?
Aren't the go and php programs doing the same but one simply handles more RPS thsn the other?
Goroutines use parallelism if you have multiple cores available
The first php exmaple is using a dev server (not meant to be performant). OpenSwoole is written in C, so it isnt actual php. The NodeJS example uses express, one of the slowest libraries, and the with Golang example I dont have idea, but it seems like a bad implementation or some weird scenario
And the most important thing is that he ran the benchmarks locally with an unknown version of php, an unknown version of nodejs, an unknown version of go and an unknown ENVIRONMENT
A lot of things could go wild testing locally
@@matteac_rs "OpenSwoole is written in C, so isn't actual php". I'm sorry but this is just nonsense. Even go is written in C.
@@forevernoob97 and JavaScript is C++
@@forevernoob97Go is not written in C. Go compiles directly to machine code.
the php guy's voice reminds me of a mix of "DailyDoseOfInternet" and "Fireship"
Never used PHP, but its absurd that it is faster than GO(I have seen it being faster than rust in some edge cases)... Even the most unoptimzed code should outperform majority of the interpreted languages.
PHP has a JIT, but even then Go is still vastly superior
@@LtdJorge Isn't Go typed, thus vastly inferior to PHP?
@@AllanSavolainenwe have type hinting in php 8 and you can enforce types at run time
@@AllanSavolainentypes are inferior? 😂
@@ea_naseer yeah, fortunately they are optional, thus not making PHP inferior :)
Dear Prime, goto politics. Your trolling, crowd management/manipulation skills and rust propaganda are perfect.
Actually, JavaScript is faster than digital circuits using the timewarp library.
Does he really not know what PM2 is? It's almost mandatory for running a Nodejs server!
Most of use bare metal senior guys don't use node as web apps. We only use nodejs for the css and js development. I didn't know about pm2.
I would use a top, htop, [-SIG trap], daemon tools, and other unix scripts instead of a process manager. [ pm2 ] reminds me of what J2EE used to do and that experience was horrible.
I guess I learn something everyday.
@@complexity5545 In that case, PM2 is what you want 😉 It makes Nodejs just like any other unix server and feels natural in such an environment.
Mandatory? It's slow and has overhead. Every sysadmin uses systemctl and with the case for node runtime, they cluster their backend.
Are you sure that's the fastest Bun? Have you tried Elysiajs? I don't know i expected Bun more closed to Go.
Never trust benchmarks you haven't fabricated yourself (don't remember the author).
I love OpenSwoole - finally PSR-7 compliant as well now. PHP and Go are similar in that they compile extra fast. PHP, Java, and .Net are similar in that there is a virtual machine running translated bytecode.
PHP is HOT ❤🎉😊 Ruby is beautiful ❤🎉😂 Rust is ugly lang😂
At some point someone will write code so fast it’ll break the laws of physics and we’ll collapse into a black hole…
I'm looking forward
Go to a company and ask for money, else benchmark their products? :D
10 lines of code benchmarks are like looking through a keyhole and trying to figure out the room's size.
PHP is fast enough for most use cases. Just don't use any frameworks (or ORMs). Decade ago I helped to rewrite a video rental service. Original one was done with PHP + some popular framework at the time and managed to handle 20 users/s. We implemented the service as pure PHP without ORM and managed to get 2000-3000 users/s on the same hardware. We did also test node.js implementation and it was twice as fast, but customer didn't want to go with that as PHP devs were so much cheaper and easier to find than node devs. Today they would probably want it to be implemented with Java and Spring Boot, ugh. Still that would make more sense than use node :)
I'm working on a computationally hyperefficient framework for PHP and we notice that laravel and symfony are 5x slower at almost everything.
Yeah a chunky framework is a huge tax on PHP, raw PHP is really fast considering it's a dynamic typed language.
@@neptronix Yep, PHP is fast enough for most use cases. Just don't use ORM, but you shouldn't be using ORM with any language.
It is. But why would you want to use PHP, which is still slower than something else and not necessarily harder to use? Also, PHP consumes a lot of memory per request and actually that's a bigger issue.
@@AllanSavolainen Yep, i run an extremely lightweight stack that's about 5x faster than laravel, i'm with you on not being a bloat enjoyer
@@mdbk2
I use it because:
1) It's extremely fast. 3 times faster than node when used with openswoole ( source: techempower composite benchmarks ). This is amazing considering it's a simplified and dynamic typed language. This is because it's a thinner layer on top of C than most languages are today.
2) It's extremely quick to work in because it simplifies coding... at the same time it doesn't limit you to do crazy shit if needed. Best of both worlds.
3) Other languages are more of a pain in the ass due to lower convenience + longer code, or are a tad easier but dramatically slower ( meaning you will spend more time optimizing and go negative on your productivity gains ), PHP hits a great sweet spot for me of short code and fast code.
4) Much like Rasmus Lerdorf himself, i am simply an impatient programmer.
My PHP scripts take less than a megabyte per instantiation on average, i personally don't feel like that is too much.
What I sure exactly know PHP is much more faster and comfortable in time parsing then GO. Don't believe me? Try to do time.Parse() fast and correct in GO!
PHP is faster than Assembly.
@2:55 45k req/s on what hardware exactly? lmao
Openswoole making concurrency gains 💪
We want the Gaslight-agen
Love the consistent quality content Prime Time. :) Thx
The problem is that PHP is synchronous by default. On the contrary JS & Go are asynchronous by default.
So all the libraries of JS and Go will natively support asynchronous code, but for each PHP I/O lib you will have to find an up-to-date version of this library supporting asynchronous code which is not necessarily easy (same problem than python async apps).
Swoole/OpenSwoole hooks into all synchronous I/O functions of PHP and makes them asynchronous automatically - This means that the code still looks synchronous (except the fact that the synchronous code is wrapped in coroutines). OpenSwoole/Swoole does the same for most PHP extensions
Lambo awaits you ... but without the await crap
LLVM is faster than my CPU
I mean any language under proper language runtimes becomes got. I don't know you want to code it in Rust?
I’ve tried Swoole but I’m not sure if it’s production ready per se, but it’s an exciting direction for PHP. Definitely requires you to think differently and carefully about how you architect your PHP app since it is contrary to the traditional model of the short lived lifecycle (where everything starts fresh and gets discarded at end of request). It is very interesting, though.
We use Swoole in production and have been for quite awhile now on an API that serves 500 -> 2000 heavy, requests per second. Took a little bit of configuration, and it is important to understand that your app will live in memory, but it’s been wonderful.
Please don't do that benchmark thing you are coming up with this :(
it's clearly swoole not swole, incorrect pronunciation sigh
“Dude do you even bench….mark?”
You all got it wrong. X, formerly known as Twitter is the fastest of anything😂.
did i just.. witness a birth of a supervillain?
Open Swole Bro, PHP Bench 🏋
"I could make so many bad benchmarks" ... just make a troll youtube channel with nothing but BS benchmarks!
I just miss the streams, so sadge...
The issue with "async PHP" is that once you use it, you throw out all native PHP functions that do IO. Also i would be interested to see a deeper comparison what is actually done in the async PHP runtime. Does it handle all sorts of issues with encoding and unicode? As a default its most likely just dumping bytes and not doing much else. Every time i did run some stringly benchmarks with PHP perf dropped drastically when you did unicode (what most other languages do as a default)
Swoole/OpenSwoole hooks into all the *EXISTING* I/O functions of PHP making them asynchronous
Im missing 20min videos for me to eat breakfast watching hehe
PHP 😂 people still fighting the good fight
We shall not falter
As always old school tech still more stable and reliable.
JavaScript is Faster than Binary - note it.
That's because PHP is usually benchmarked using apache or nginx, in the case what the benchmark is measuring is the overhead of apache or nginx more than it's measuring PHP.
When you run node.js out through apache/nginx, it's really, really slow in a similar condition.
DISINFORMATIONaegen
That's a bit extreme 😂😂
OMG PHP is the king of the hill now. Again!
I am 100% on board with you making click bait misinformation shorts as long as you do it under the name “The Crimagen”. You don’t harm your actual reputation that way and it’s a good name for parody content.
php serve is slow, php-fpm still has some unnecessary overhead, especially when using big frameworks, but php itself does crunching really fast when you let it
Lol. I commented some things that massively improved php performance the last years , so much that it can be found at the top of (framework) benchmarks _sometimes_, while also agreeing that this benchmark was done wrong and go is surely sister , agreeing with the response of this video . And it got marked as spam and removed ?
You all need to write the following on a blackboard like Bart:
Languages are not slow or fast - runtimes are.
Languages are not slow or fast - runtimes are.
Languages are not slow or fast - runtimes are.
Languages are not slow or fast - runtimes are.
Languages are not slow or fast - runtimes are.
People saying "PHP is not fast, that library is" , LOL WHAT?
Can anyone compare C compilers from the 80s with modern ones ? :D
Python is faster than C Kappa
Mooooar PHP, please! Test krakjoe/parallel extension for multithreading!
You should release shorts where each short contradicts another using bad benchmarks. "RUST slower than NODE?!" and the inverse, "PYTHON FASTER THAN C?!" etc
Ok before even seeing the video am already triggered hajajajaja I hope is just clickbait 😂
까는거 개웃기넼ㅋㅋ
It's quite sad to see that most people still believe the myth that there are intrinsically "fast" or "slow" languages.
Sending a string of text and asking for it back just seems like an unrealistic test. Again technology if at its pace will make these silly benchmarks unnecessary and the language wars will be ignored.
Pick the language which meets the project’s requirements and will have the best chance of success. Highly dependent on the size and scale of the application..
I don't get why it was slow without Swoole and way faster with it. What server were they using with php before using it with Swoole? Yes, php is blocking, but I thought that didn't matter because, well it's not like you typically run a server implemented in blocking php. Instead you use Apache or something and it just launches more php instances as needed, or something like that (I'm probably wrong about this part...)
Because without Swoole, PHP executes the entire script from scratch with each request. With Swoole it works more like a Node or Go server, where only the handler is executed, but the rest of the application remains in memory.
The first example didn’t use a real web server, but phps built in dev server, which can’t handle multiple requests at a time. They should have used Apache or nginx+ php-fpm
@@mdbk2 yeah but if the server is then just your php process long running, yes there are some opportunities for optimization there, but I am not convinced these numbers mean anything at all unless you compare with a typical server used with php. There could also be some speed advantage to just giving each request its own blocking php process.
GO destroyed by open source elephant-logo chad swole language
Netflix stock go brrr
js is faster than c++
Guess what Appwrite backend is in Swoole
Laravel Octane is pretty ridiculous
My next benchmark ... MS-DOS with GWBasic server faster than Go.
"How Tcl is WAY faster than Rust"
we need a benchmark with fasthttp
JavaScript > C - April fools day upload
swolengen
aprilmintacpineda2713 is butthurt af
The-swole-agen brings me happiness every time I watch his vids. Thank you Prime
it seems primagen has finally become the villain
css as backend benchmark needed. To prove css is faster than c++.
Swollagen, haha 😂
Swolagen 💪 😂
Java is the fastest.
It is truly one of the programming languages of all time.
Is the repo of the source code of the benchmarks public?
Even Prime is faster than GO ~:)
Everything aside, we can at least agree that that is a pretty cool module name. lol
Did no one watch the video? LOL
Look at the comments omg
VsCode is better than Vim
JavaScript is faster than C.
Prime's voice sounds like a mix between Bill Burr and Gru.
This got me wondering, what if you compile Go to C with CGO?
Good old offload to C trick
🤔it is not a lie and already in production use and php written in c
It’s how you write code that matters
Man all this go haten need to stop right now
Hand written letters are faster than C