Merely loading the extension slows execution substantially even with no debugging session and no profiler running, because it installs hooks into the engine. It ends up in production…
A single profile tells you where the time goes and leaves the question of whether that is unusual. A comparison between two profiles answers the question you actually…
A 400ms pause on every request, once an hour, caused by a cache cleanup nobody thought of as expensive. Redis is single-threaded, and freeing memory is work.
Finding out what queries a request actually ran means either a package, a debug bar that changes the page, or the listener that has been in the framework…
Xdebug instruments every function call, so it sees everything and multiplies the runtime by three to five. A sampling profiler interrupts periodically and records the stack, so it…
A profile answers “which functions consumed the time” precisely and says nothing about the reason. The most common finding is that the top entry is PDOStatement::execute, which is…