<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>debugging on semikolan</title>
    <link>https://semikolan.me/tags/debugging/</link>
    <description>Recent content in debugging on semikolan</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 27 Jul 2026 21:19:11 +0530</lastBuildDate>
    <atom:link href="https://semikolan.me/tags/debugging/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The Profiler Is Always Right</title>
      <link>https://semikolan.me/blog/the-profiler-is-always-right/</link>
      <pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://semikolan.me/blog/the-profiler-is-always-right/</guid>
      <description>&lt;p&gt;I keep a mental list of times I was certain I knew where the time was going, ran a profiler to confirm it, and got humbled. The list is long. The profiler&amp;rsquo;s record against me is perfect.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-bottleneck-was-never-where-i-looked&#34;&gt;The bottleneck was never where I looked &lt;a class=&#34;anchor&#34; href=&#34;#the-bottleneck-was-never-where-i-looked&#34; aria-label=&#34;Link to this section&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;d stare at the gnarly nested loop, the obvious &lt;code&gt;O(n²)&lt;/code&gt;, and optimize it for an afternoon. The profiler would then point, flatly, at a &lt;code&gt;json.Marshal&lt;/code&gt; call in the logging path that ran on every request. The scary algorithm ran twice a day. The boring serialization ran a million times an hour.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
