How PHP executes bytecode
The Zend Engine ships five different bytecode executors, three of which are actually used. I look at how they differ, why they exist, and what all of this has to do with branch prediction in your processor.
Read moreArticles about Performance by Sebastian Bergmann
The Zend Engine ships five different bytecode executors, three of which are actually used. I look at how they differ, why they exist, and what all of this has to do with branch prediction in your processor.
Read more
On every run, PHPUnit knows how long each test took, how much memory it used, and why it failed. Most of that evaporates. otr-report reads it back out of the Open Test Reporting logfile and puts it within reach.
Read more
How fast is your test suite, and what vulnerabilities does an LLM agent therefore fail to detect? What was long considered a productivity issue is now part of the security debate.
Read more
Slow tests destroy flow, kill TDD, and erode trust until nobody runs the suite. The fix has four tiers, and the biggest wins come from test design, not from infrastructure or parallelisation.
Read more
"It feels slow" is not a diagnosis. I explain the three disciplines that turn vague complaints into actionable data: tracing, profiling, and benchmarking.
Read more
While working on PHPUnit, I encountered an interesting problem.
Read moreReceive a comprehensive analysis of new PHPUnit features, implementation details, and the strategic considerations behind each improvement via email every two months.
Subscribe now