🎤 Max Fomichev spoke at The Dutch PHP Conference!
The talk 'Achieving High-Performance HTTP in PHP Without Threads: Simulating Parallel Requests' is now live!💪 🚀
🎥 Watch it here: https://phpconference.nl/session/achieving-high-performance-http-in-php-without-threads-simulating-parallel-requests/
#dpc25 #performance #PHP #phpconference

🎤 Max Fomichev spoke at Webdevcon!
The talk 'Achieving High-Performance HTTP in PHP Without Threads: Simulating Parallel Requests' is now live!💪 🚀
🎥 Watch it here: https://webdevcon.nl/session/achieving-high-performance-http-in-php-without-threads-simulating-parallel-requests/
#wdc25 #performance #PHP #webdevcon

Hoje vou comparar PHP stack rodando no Apache, Nginx com PHP-FPM e FrankenPHP.
Quem sabe misturar eles tbm.
#blambers #php
A022839: Beatty sequence for sqrt(5)
3D graph, threejs - webGL ➡️ https://decompwlj.com/3Dgraph/A022839.html
3D graph Gen, threejs animation ➡️ https://decompwlj.com/3DgraphGen/A022839.html
2D graph, first 500 terms ➡️ https://decompwlj.com/2Dgraph500terms/A022839.html
#decompwlj #math #mathematics #maths #sequence #OEIS #JavaScript #php #graph #3D #threejs #webGL #triangular #numbers #primes #PrimeNumbers #palindromes #animation #FundamentalTheoremOfArithmetic #sequences #NumberTheory #classification #integer #decomposition #number #theory #equation #graphs #sieve #fundamental #theorem #arithmetic #research

Decomposition into weight × level + jump of prime numbers in 3D, threejs - webGL (log(weight), log(level), log(jump))
➡️ https://decompwlj.com/3Dgraph/Prime_numbers.html
#decompwlj #math #mathematics #maths #sequence #OEIS #JavaScript #php #graph #3D #threejs #webGL #triangular #numbers #primes #PrimeNumbers #palindromes #animation #FundamentalTheoremOfArithmetic #sequences #NumberTheory #classification #integer #decomposition #number #theory #equation #graphs #sieve #fundamental #theorem #arithmetic #research
A022566: Numbers that are not the sum of 4 nonnegative cubes
3D graph, threejs - webGL ➡️ https://decompwlj.com/3Dgraph/A022566.html
3D graph Gen, threejs animation ➡️ https://decompwlj.com/3DgraphGen/A022566.html
2D graph, first 500 terms ➡️ https://decompwlj.com/2Dgraph500terms/A022566.html
#decompwlj #math #mathematics #maths #sequence #OEIS #JavaScript #php #graph #3D #threejs #webGL #triangular #numbers #primes #PrimeNumbers #palindromes #animation #FundamentalTheoremOfArithmetic #sequences #NumberTheory #classification #integer #decomposition #number #theory #equation #graphs #sieve #fundamental #theorem #arithmetic #research

Seven Real-World Examples of Using the Pipe Operator in PHP 8.5. #PHP
Posted into SYMFONY FOR THE DEVIL @symfony-for-the-devil-mobileatom
PHP Dependency Management Using Composer. #PHP #composer
https://www.zend.com/blog/php-dependency-management?utm_source=flipboard&utm_medium=activitypub
Posted into SYMFONY FOR THE DEVIL @symfony-for-the-devil-mobileatom
Speaking of things that remind me of #PHP, I'm messing with my Mastodon importer and here is how I'm converting Youtube links to embeds (by rewriting them into shortcodes.) And it's literally just string replacement and prayer to the machine elves.
But... it works. When the importer isn't garbage I'll put it up on Codeberg.

アンパンマンは最初、「あんパンを配るおじさん」だった。「カッコワルイ!」と子どもに罵倒されるシーンも【アンパンマンの日】
https://www.huffingtonpost.jp/entry/story_jp_68ddd8f8e4b0c450ba651ba2
#huffingtonpost #アートとカルチャー #知られざる世界 #アンパンマン #あんぱんまん #やなせたかし #php #shirarezarusekai #anpanman #yanasetakashi
if you just happen to write a very basic jit compiler (for PHP, lets say) that generates simple binary that's calling into opcode handlers (to get rid of interpreter overhead), you are limited by throughput of call/ret instructions, which is not that good. venerable haswell (2013) can do one call register instruction every two cycles, icelake (2019) only one every three cycles.
that's important in our situation, when our jitted code look like this
movq %rbp, %rdi
movq %rbx, %rsi
call *%r13
movq %rax, %rbp
movq %rdx, %rbx
movl $420, %edx
movq %rbp, %rdi
movq %rbx, %rsi
call *%r12
cmpq $1, %rax
je .L8
when it's nothing more than calls surrounded by sequences of zero latency moves, how fast you can hammer out calls, matters a lot.
it's actually quite funny. look at this:
function testfunc() { $i = 0; while ($i < 999999999) $i++; }
testfunc();
jitted code for that dummy loop, that stress-tests opcode handler calling, takes 7.5% more cycles on my relatively new tiger lake laptop than on prehistoric haswell desktop. but at the same time PHP 8.4.11 interpreter got 22% faster (in term of cycles) on newer hardware.
the perverse outcome of this is that a very basic jit that calls into handlers cannot ever beat tailcalling interpreter. on certain hardware anyway. you may still execute smaller number of instructions, but in larger number of cycles.
It is not possible to cast any #PHP enum cases to (string) or (int) even when... they are backed!
That looks like a natural feature, though.
https://php-tips.readthedocs.io/en/latest/tips/casting_enum.html
