<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Muhammet Şafak — Service &amp; load research</title><description>Latency distribution, saturation point and queue behaviour under load — p95/p99, not the mean; backpressure and circuit breakers included.</description><link>https://www.muhammetsafak.com.tr/</link><language>en-US</language><lastBuildDate>Wed, 16 Sep 2026 00:00:00 GMT</lastBuildDate><managingEditor>info@muhammetsafak.com.tr (Muhammet Şafak)</managingEditor><atom:link href="https://www.muhammetsafak.com.tr/en/research/program/servis-yuk/rss.xml" rel="self" type="application/rss+xml"/><item><title>I measured PHP and Go on the same OAuth2 API: no gap at 10,000 writes, a real one at 50,000 reads</title><link>https://www.muhammetsafak.com.tr/en/research/php-vs-go-oauth2-postgres-load-test/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/en/research/php-vs-go-oauth2-postgres-load-test/</guid><description>At 10,000 writes a second all three candidates hit the target in five runs out of five, and none had a p99 above 2.5 ms: at this load the language is not a capacity line item. At 50,000 reads a second only Go held the target on four cores (p99 6.45 ms); PHP-FPM stopped at 23,528 and FrankenPHP at 22,859. CPU per read request is 64 microseconds for Go, 117 for FrankenPHP and 168 for PHP-FPM. Sized by instance, 50,000 reads take 3.4 cores in Go and 8.2–8.8 cores for the two PHP candidates. FrankenPHP&apos;s CPU saving does not turn into capacity: at saturation it leaves about one of its four cores idle.</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate><category>servis-yuk</category><category>php</category><category>go</category><category>benchmark</category><category>oauth2</category><category>postgresql</category><category>frankenphp</category><category>php-fpm</category></item><item><title>Seven PHP frameworks under identical load: the gap narrows as soon as the request does real work</title><link>https://www.muhammetsafak.com.tr/en/research/php-framework-load-test/</link><guid isPermaLink="true">https://www.muhammetsafak.com.tr/en/research/php-framework-load-test/</guid><description>On an empty route the fastest is 4.4× the slowest (Slim 25,975, Laravel 5,966 req/s). As soon as the request does real work the gap closes: 3.7× for a single row from the database, 3.5× for twenty rows. Phalcon is third on an empty route and fifth once a query is involved — being a C extension buys nothing while the process waits on MySQL. And the expensive decision is not the framework: Laravel&apos;s own default `web` middleware group takes the same response from 5,858 to 2,176 req/s, so one default costs more than most of the distance between the frameworks.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>servis-yuk</category><category>php</category><category>benchmark</category><category>framework</category><category>php-fpm</category><category>docker</category></item></channel></rss>