# PHP worker mode

> FrankenPHP, RoadRunner or Octane: the app boots once, so the framework’s per-request overhead goes. Loses shared nothing, so memory leaks and state bleed become possible.

## Trade-offs

| Axis | Score |
| --- | --- |
| Throughput | |
| Tail latency | |
| Memory | |
| Velocity | |
| Resilience | |
| Operability | |

## Frameworks

- [Laravel](https://wiki.playquorum.dev/frameworks/laravel.md)
- [Symfony](https://wiki.playquorum.dev/frameworks/symfony.md)

## Engineering terms

- [Process per request](https://wiki.playquorum.dev/glossary/process-per-request.md)
- [Tech debt](https://wiki.playquorum.dev/glossary/tech-debt.md)

## Facts

PHP worker mode
- **Language:** PHP
- **Concurrency:** One process per request
- **Speed:** ×0.15
- **Memory:** 60 MB
- **Startup:** 0 s
- **Warm-up:** —
- **GC pause:** None
- **Unlocked by:** [PHP worker mode](https://wiki.playquorum.dev/research/php-worker-mode.md)
- **Velocity:** ×1.2
- **Salary:** ×0.85
- **Build:** 0.5 min

## See also

- [Runtimes and frameworks](https://wiki.playquorum.dev/runtimes.md)
- [Laravel](https://wiki.playquorum.dev/frameworks/laravel.md)
- [Symfony](https://wiki.playquorum.dev/frameworks/symfony.md)

Source: https://wiki.playquorum.dev/runtimes/php_worker
