The rules state that FFI and the likes isn't allowed because the goal is to do it in PHP :)
HN user
brentroose
PHP 8.5
True, it's a bug that I'm going to fix, but it only impacts local test data sets and not the real benchmark :)
Around 7GB
Almost all, actually. I wrote about it here: https://stitcher.io/blog/11-million-rows-in-seconds
A couple of things I did:
- Cursor based pagination - Combining insert statements - Using database transactions to prevent fsync calls - Moving calculations from the database to PHP - Avoiding serialization where possible
The FAQ states that solutions like FFI are not allowed because the goal is to solve it with PHP :)
A month ago, I went on a performance quest trying to optimize a PHP script that took 5 days to run. Together with the help of many talented developers, I eventually got it to run in under 30 seconds. This optimization process with so much fun, and so many people pitched in with their ideas; so I eventually decided I wanted to do something more.
That's why I built a performance challenge for the PHP community
The goal of this challenge is to parse 100 million rows of data with PHP, as efficiently as possible. The challenge will run for about two weeks, and at the end there are some prizes for the best entries (amongst the prize is the very sought-after PhpStorm Elephpant, of which we only have a handful left).
I hope people will have fun with it :)
Out of curiosity: do you know why they pay for it themselves instead of asking their company to do so?
The rich ecosystem, the amount of developers experienced with it, ease of deployment and maintenance
Yeah, doc blocks. It's a name that originated within PHP a long time ago: https://docs.phpdoc.org/guide/guides/docblocks.html
You could probably use GIT commit history as a data source?
Thanks! I'm the author of the post and creator of the video :) Appreciate the kind words.
Hey, I'm the author of the post. A while ago I made a video where I built a small but serious hobby project in PHP with Laravel. It was a five hour recording, but I condensed it into a commentated 20-minutes timelapse: https://www.youtube.com/watch?v=mmtVkDh9RGw
If you don't have the time to watch it, you can also check out the open source code of that project: https://github.com/brendt/aggregate.stitcher.io
I still work on it, and I'd say i's a pretty accurate representation of a standard Laravel application.
I have, just started using it today actually. It's an RSS reader, but one where people can suggest new content to me as well: https://aggregate.stitcher.io/
I've made a Dutch podcast about my first five years being a professional programmer at a web agency: clients were blatantly lied to, colleagues were pressured into doing all kinds of unethical stuff, I considered quitting programming altogether after a couple of years — it was a wild ride
I made it into a podcast because I wanted to practice my editing skills, but it was also kind of therapeutic being able to talk about all this. So I don't care whether there's a huge audience. Creating the podcast was a goal in itself, which I achieved :)
If you're Dutch and want to give it a listen, here you go: https://stitcher.io/de-job
This study was cited by Mozilla a couple of years ago when they introduced their dev console redesign (https://blog.nightly.mozilla.org/2017/09/11/developer-tools-...)
I’m the author, and I think you’re partially right.
This article wasn’t done (and I’m still going to finish it, a “looking forward” section is missing)
I published it to get some feedback from the occasional reader, which I do more often. You can see I haven’t tweeted or posted it anywhere, I wanted to wait a couple of days still; so it’s a little unfortunate it got picked up here so soon. Of course I’m happy with the positive reception overall, but I agree that it’s not done yet.
On the part of self promotion within my own content: that’s just the way I’ve been doing it for years. I don’t feel guilty about mentioning other things I’ve made that I’m proud of and what I believe are high value as well. So on that part I don’t agree.
I do appreciate the overall feedback though, thanks for taking the time to share it