Two hundred and eighteen methods became properties, and the question of whether the opcode cache noticed. A hook costs about what a method call costs because it is…
A feature evaluated in 2023 and rejected, re-measured in 2025 because the codebase has changed, with the same conclusion. Re-measuring rather than citing the old conclusion is the…
Eight milliseconds of every request spent resolving class paths, on a deploy that was running the wrong Composer command. Eight milliseconds spread across every request is the kind…
Preloading 900 classes, and a fatal error at startup about a class that could not be resolved. The linking is what makes preloading fast and what makes it…
A cache that fills, restarts, and refills, with every restart being a period where every request compiles everything. The restart counters are the numbers to alert on and…
The JIT compiles hot code paths to machine code and helps almost nothing in a typical web request, where the time is in I/O. Reporting a benchmark improvement…
Preloading compiles and links classes into shared memory at startup, and the linking is what makes it different from opcache. The measured gain on a typical framework application…
Disabling the timestamp check removes a stat call per file per request and means the cache no longer notices that files changed. A deploy that swaps a symlink…
The JIT is configured through two settings whose interaction is not obvious, and the most common outcome of enabling it is that it is not enabled. A buffer…