Benchmarks¶
According to our own benchmark suite, Kinetis wins five of six TechEmpower-style benchmark tests against seven other PHP frameworks — Laravel, Laravel Octane, Symfony, CodeIgniter, Yii2, CakePHP, and Slim — measured on isolated AWS hardware on August 15, 2026. TechEmpower sunset its own benchmark project in March 2026, so no neutral third party runs this kind of comparison anymore — which is exactly why the full methodology and every framework’s implementation are public in the benchmark repository: the numbers below are reproducible, not just reported. This page covers what was tested and what came out, not how the rig is built.
What was tested¶
Six TechEmpower Framework Benchmarks
test types — /json, /plaintext, /db, /fortunes,
/queries?queries=20, /updates?queries=20 — against identical MySQL
schema and data, one implementation per framework using that
framework’s own idiomatic routing, database layer, and templating.
Every target runs the same production PHP configuration (opcache with
a tracing JIT, timestamps disabled, access logging off) and its own
ahead-of-time caching mechanism where it has one. Three separate EC2
instances — application, database, load generator — provide real
machine isolation, the same methodology TechEmpower’s own benchmark
used; its test types remain the de facto standard for comparing web
frameworks.
Kinetis appears twice: kinetis runs on FrankenPHP worker mode, its
primary deployment target; kinetis-fpm is the identical, unmodified
application under classic nginx and PHP-FPM. The pair isolates what
the framework’s own request handling costs from what the
persistent-worker runtime adds.
The fairness rules — what was tuned, why, and what was deliberately left alone — are documented in full in the repository’s own README; they aren’t repeated here.
Versions tested¶
A follow-up run on the same rig confirmed that the kinetis versions below reproduce the results within run-to-run noise. The benchmark repository tracks current releases, so a fresh clone installs the latest kinetis packages.
Target |
Package |
Version |
PHP |
|---|---|---|---|
|
kinetis/framework |
1.5.4 |
8.5.9 (FrankenPHP, ZTS) |
|
kinetis/framework |
1.5.4 |
8.4.24 |
|
slim/slim |
4.15.2 |
8.4.24 |
|
yiisoft/yii2 |
2.0.55 |
8.4.24 |
|
symfony/framework-bundle |
7.4.16 |
8.4.24 |
|
cakephp/cakephp |
5.4.1 |
8.4.24 |
|
codeigniter4/framework |
4.7.4 |
8.4.24 |
|
laravel/framework |
13.25.0 |
8.4.24 |
|
laravel/framework + laravel/octane |
13.25.0 + 2.19.0 |
8.5.9 (FrankenPHP, ZTS) |
kinetis/kinetis-fpm also ran kinetis/persistence 1.5.0 and
kinetis/query-builder 1.2.3. FrankenPHP-based targets run a newer PHP
than the PHP-FPM targets because that’s what the dunglas/frankenphp
image ships — see Runtime Adapters for how Kinetis picks a
runtime.
Results¶
Requests per second at concurrency 256; /queries and /updates run
20 queries per request. One measurement run, not an average.
Target |
|
|
|
|
|
|
|---|---|---|---|---|---|---|
|
27,878 |
27,830 |
19,797 |
16,489 |
4,304 |
1,495 |
|
13,443 |
13,409 |
7,714 |
7,181 |
4,301 |
1,801 |
|
10,596 |
10,659 |
6,257 |
5,555 |
2,104 |
1,105 |
|
9,865 |
10,255 |
6,016 |
5,597 |
2,887 |
1,579 |
|
6,250 |
6,256 |
2,188 |
2,038 |
1,588 |
1,207 |
|
5,927 |
5,990 |
3,065 |
2,896 |
1,406 |
969 |
|
5,154 |
5,154 |
3,967 |
3,730 |
2,623 |
1,501 |
|
5,088 |
5,172 |
4,563 |
4,231 |
1,506 |
868 |
|
2,555 |
2,560 |
2,025 |
1,884 |
1,065 |
748 |
kinetis wins /json, /plaintext, /db, and /fortunes outright,
and /queries in a near-tie with slim. /updates is the one test
kinetis doesn’t win: it’s bound by the database’s own write path
(row locks, index maintenance, the redo log), and the database instance
runs at the same load for every target — no application-side change
moves that number. slim, the fastest boot-and-die target on every
other test, wins it.
Full methodology¶
The benchmark repository has the complete picture: every framework’s implementation, the AWS infrastructure as code, and the fairness rules applied identically across all nine targets — everything needed to run the same sweep yourself and check these numbers directly.