performance

  • Docker 20.10 and the cgroup transition

    A release with rootless mode and cgroup v2, and a container that reported the host memory limit. Where the numbers come from and which are lies.

  • Cardinality is what makes a metric expensive

    A metric with a label is one time series per distinct label value, and a label with unbounded values is an unbounded number of series. The failure is…

  • rest_pre_dispatch, and short-circuiting cheaply

    A rate limit or a maintenance check placed inside every route callback is a check repeated forty times, and the dispatch filter runs once. Returning anything non-null short-circuits…

  • SplFixedArray, and the million-element array that halves

    A PHP array is a hash table even when the keys are 0 to n, and for a large numerically indexed list that overhead is most of the…

  • IntersectionObserver for everything loading=lazy does not cover

    Native lazy loading covers images and iframes. Anything else that should happen when an element becomes visible still needs the observer — and it is the right tool.…

  • Profiling before you optimise

    Two days spent optimising a function that was 3% of the request. The profiler said so in ninety seconds, and nobody had run it.

  • The migration that squashed two hundred files

    A test suite spending ninety seconds replaying six years of schema history. Squashing is a good idea with two failure modes worth knowing first.

  • Alert on an error budget burn rate

  • Composer 2 is not a minor upgrade

    A dependency resolver rewritten and parallel downloads, so install went from ninety seconds to eleven. And a plugin API that broke three packages.

  • Persistent caching, and a warm build that is seconds

    Every build in 4 started from nothing, which on a large application is a minute of parsing and transpiling that produces the same result as last time. buildDependencies…