<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cold Start on Programmer.ie: Modern AI programming</title>
    <link>http://programmer.ie/tags/cold-start/</link>
    <description>Recent content in Cold Start on Programmer.ie: Modern AI programming</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 02 Sep 2026 15:30:00 +0100</lastBuildDate>
    <atom:link href="http://programmer.ie/tags/cold-start/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Cold Starts, Warm Runs and Real Latency</title>
      <link>http://programmer.ie/books/browser-ai-from-first-principles/11-chapter/</link>
      <pubDate>Wed, 02 Sep 2026 15:30:00 +0100</pubDate>
      <guid>http://programmer.ie/books/browser-ai-from-first-principles/11-chapter/</guid>
      <description>&lt;p&gt;“Local AI is faster” is not a measurement.&lt;/p&gt;&#xA;&lt;p&gt;It compresses several different waiting periods into one adjective. A browser-native feature can avoid network round trips and still make a user wait for model acquisition, process startup, session creation, context ingestion or slow generation.&lt;/p&gt;&#xA;&lt;p&gt;To understand latency, we have to take the lifecycle apart.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-one-duration-hides-several-clocks&#34;&gt;1. One duration hides several clocks&lt;/h2&gt;&#xA;&lt;p&gt;For one interaction, useful timestamps include:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Phase&lt;/th&gt;&#xA;          &lt;th&gt;Starts&lt;/th&gt;&#xA;          &lt;th&gt;Ends&lt;/th&gt;&#xA;          &lt;th&gt;User-visible?&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Capability inspection&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;availability()&lt;/code&gt; call&lt;/td&gt;&#xA;          &lt;td&gt;state returned&lt;/td&gt;&#xA;          &lt;td&gt;Usually not&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Acquisition&lt;/td&gt;&#xA;          &lt;td&gt;session request requires assets&lt;/td&gt;&#xA;          &lt;td&gt;assets ready&lt;/td&gt;&#xA;          &lt;td&gt;Yes, if it blocks&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Session creation&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;create()&lt;/code&gt; called&lt;/td&gt;&#xA;          &lt;td&gt;session returned&lt;/td&gt;&#xA;          &lt;td&gt;Often&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Prompt startup&lt;/td&gt;&#xA;          &lt;td&gt;prompt called&lt;/td&gt;&#xA;          &lt;td&gt;first chunk&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Generation&lt;/td&gt;&#xA;          &lt;td&gt;first chunk&lt;/td&gt;&#xA;          &lt;td&gt;final chunk&lt;/td&gt;&#xA;          &lt;td&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Validation&lt;/td&gt;&#xA;          &lt;td&gt;output complete&lt;/td&gt;&#xA;          &lt;td&gt;feature accepted/rejected&lt;/td&gt;&#xA;          &lt;td&gt;Sometimes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;The perceived wait for a streaming feature is often dominated by time to first output:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
