Go IS Slower Than PHP | Prime Reacts
ฝัง
- เผยแพร่เมื่อ 18 ต.ค. 2023
- 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/deeznuts - วิทยาศาสตร์และเทคโนโลยี
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.
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.
There are lies, damned lies, and statistics.
And this is the second
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.
Python is faster than Rust.
Always has been
just a dream 🤭
@@0.Maiden A fever dream.
Who cares😂
And javascript is 20x faster than typescript (people quoting that research paper always makes me chuckle)
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'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.
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.
Optane says hello.
Sad intel canned it. Memory prices fell too much for it to be viable.
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.
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
Love the consistent quality content Prime Time. :) Thx
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.
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! 😂
Enough GO. It's time for PHP, again.
PHPagen
go PHP()
10 lines of code benchmarks are like looking through a keyhole and trying to figure out the room's size.
Virgin rustard developer vs chad swoole PHP expert
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.
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!
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
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.
the php guy's voice reminds me of a mix of "DailyDoseOfInternet" and "Fireship"
The-swole-agen brings me happiness every time I watch his vids. Thank you Prime
Is the repo of the source code of the benchmarks public?
Are you sure that's the fastest Bun? Have you tried Elysiajs? I don't know i expected Bun more closed to Go.
This got me wondering, what if you compile Go to C with CGO?
did i just.. witness a birth of a supervillain?
we need a benchmark with fasthttp
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 is a great language. Just let it be.
Everything aside, we can at least agree that that is a pretty cool module name. lol
It’s how you write code that matters
Guess what Appwrite backend is in Swoole
We want the Gaslight-agen
Php devs can't take a break 😂😂😂
All the mockery
“Dude do you even bench….mark?”
it seems primagen has finally become the villain
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.
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.
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.
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 :)
Actually, JavaScript is faster than digital circuits using the timewarp library.
Never trust benchmarks you haven't fabricated yourself (don't remember the author).
Mooooar PHP, please! Test krakjoe/parallel extension for multithreading!
Prime's voice sounds like a mix between Bill Burr and Gru.
OMG PHP is the king of the hill now. Again!
You should release shorts where each short contradicts another using bad benchmarks. "RUST slower than NODE?!" and the inverse, "PYTHON FASTER THAN C?!" etc
Openswoole making concurrency gains 💪
@2:55 45k req/s on what hardware exactly? lmao
Actually, php is fast enough...
Aaron Francis
3:19 - every tech blogger ever
Try adding drogon to your echo test
I just miss the streams, so sadge...
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.
Netflix stock go brrr
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
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 ?
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.
Dam, its fast
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.
Lambo awaits you ... but without the await crap
Open Swole Bro, PHP Bench 🏋
I mean any language under proper language runtimes becomes got. I don't know you want to code it in Rust?
Do it as an April fools joke
🤔it is not a lie and already in production use and php written in c
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
Laravel Octane is pretty ridiculous
PHP is faster than Assembly.
Go to a company and ask for money, else benchmark their products? :D
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!
My next benchmark ... MS-DOS with GWBasic server faster than Go.
Hand written letters are faster than C
LLVM is faster than my CPU
Swollagen, haha 😂
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
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
3:40 do it
As always old school tech still more stable and reliable.
css as backend benchmark needed. To prove css is faster than c++.
You all got it wrong. X, formerly known as Twitter is the fastest of anything😂.
PHP/Hack ftw
GO destroyed by open source elephant-logo chad swole language
Swolagen 💪 😂
Even Prime is faster than GO ~:)
Good old offload to C trick
The Prime reading my comment is sooooo satisfying. Gotta add that to my resume.
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..
JavaScript > C - April fools day upload
swolengen
Is Python faster?
PHP 😂 people still fighting the good fight
We shall not falter
According to techempower benchmarks PHP can be faster than Go, but Go does have multiple implementations that are faster than PHP. But it looks like you can get PHP going extremely fast. And, yes, PHP is faster than JS, significantly.
Granted, C# is faster than Go, C# is only slower than Rust and C++.
It's quite sad to see that most people still believe the myth that there are intrinsically "fast" or "slow" languages.
Python is faster than C Kappa
"How Tcl is WAY faster than Rust"
Bash is so fast. I start my optimised C application in it and it wins all the benchmarks.
Bash is so fast.
"I could make so many bad benchmarks" ... just make a troll youtube channel with nothing but BS benchmarks!
I can manually parse a JSON file faster than Go.
Dear Prime, goto politics. Your trolling, crowd management/manipulation skills and rust propaganda are perfect.
Man all this go haten need to stop right now
JS is faster than C