The two caching APIs in WordPress look interchangeable and are not. wp_cache_* is per-request by default and lives only for that request unless a persistent backend is installed.…
In multisite, switch_to_blog() repoints the database tables and the uploads path. It does not reload the other site’s active plugins, its theme, or anything a plugin cached in…
Three installs, three plugin sets, one person patching them — a security release forgotten on the third site for six weeks. The import order, and what a shared…
Thirty-one requests before the page could do anything, most of them under 2 KB. Concatenation in a declared order, source maps, and cache busting that proxies respect.
A cache goes in, the page gets faster, and that is usually where the measurement stops. Redis has been counting every lookup since it started and will tell…
APC did two unrelated jobs: it cached compiled opcodes, and it offered a shared-memory key/value store to application code. PHP 5.5 bundles Zend OPcache and takes the first…
Without a persistent object cache, a transient is two rows in wp_options — the value and a timeout — and expiry is checked nowhere except inside get_transient(), which…
A query answering in 20 ms locally and timing out on four million rows. An anonymised data subset that keeps the query plan honest, and the mail, cron…