<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Performance on Wilhelm Maritz</title><link>https://wjmaritz.dev/tags/performance/</link><description>Recent content in Performance on Wilhelm Maritz</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 09 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://wjmaritz.dev/tags/performance/index.xml" rel="self" type="application/rss+xml"/><item><title>A third of my request was the garbage collector</title><link>https://wjmaritz.dev/posts/garbage-collector-third/</link><pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate><guid>https://wjmaritz.dev/posts/garbage-collector-third/</guid><description>&lt;p&gt;The rostering app I maintain has a grid that shows a whole organisation&amp;rsquo;s shifts for a quarter. On live it took 1.1 to 1.5 seconds to load, and the app logs anything over 500 ms as a slow grid, so I spent a morning on it. The obvious suspects were the obvious ones: queries, and the Python that turns rows into cells. Both were guilty. But after a first round of fixes to those, the biggest remaining cost was somewhere I&amp;rsquo;d never have looked.&lt;/p&gt;</description></item></channel></rss>