bash reproduce.sh creates a fresh Laravel app with Octane on FrankenPHP (one worker) and adds a route that keeps ~200 MB of small strings on the request, the way request()->json() keeps a decoded body. It then prints the container's memory around one request to that route: first on the latest Octane release, then on the PR branch with ReleaseFreedMemory enabled.
Needs Docker and curl. It creates ./octane-repro (the container writes some files there as root) and uses port 8000.
Laravel 13.39.0, FrankenPHP 1.13.4, PHP 8.5.12:
| Container memory | Warm | After /payload |
After 1 more request | After 20 more requests |
|---|