summaryrefslogtreecommitdiff
path: root/gemfeed/2026-05-08-unveiling-ior-ng-part-1.html
diff options
context:
space:
mode:
Diffstat (limited to 'gemfeed/2026-05-08-unveiling-ior-ng-part-1.html')
-rw-r--r--gemfeed/2026-05-08-unveiling-ior-ng-part-1.html20
1 files changed, 17 insertions, 3 deletions
diff --git a/gemfeed/2026-05-08-unveiling-ior-ng-part-1.html b/gemfeed/2026-05-08-unveiling-ior-ng-part-1.html
index 980b9768..a4917493 100644
--- a/gemfeed/2026-05-08-unveiling-ior-ng-part-1.html
+++ b/gemfeed/2026-05-08-unveiling-ior-ng-part-1.html
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>Unveiling I/O Riot NG — Part 1: a guided tour</title>
+<title>Unveiling I/O Riot NG v1.0.0 — Part 1: a guided tour</title>
<link rel="shortcut icon" type="image/gif" href="/favicon.ico" />
<link rel="stylesheet" href="../style.css" />
<link rel="stylesheet" href="style-override.css" />
@@ -11,7 +11,7 @@
<p class="header">
<a href="https://foo.zone">Home</a> | <a href="https://codeberg.org/snonux/foo.zone/src/branch/content-md/gemfeed/2026-05-08-unveiling-ior-ng-part-1.md">Markdown</a> | <a href="gemini://foo.zone/gemfeed/2026-05-08-unveiling-ior-ng-part-1.gmi">Gemini</a> | <a href="https://snonux.foo">Microblog</a> | <a href="https://irregular.ninja">Street photography</a>
</p>
-<h1 style='display: inline' id='unveiling-io-riot-ng--part-1-a-guided-tour'>Unveiling I/O Riot NG — Part 1: a guided tour</h1><br />
+<h1 style='display: inline' id='unveiling-io-riot-ng-v100--part-1-a-guided-tour'>Unveiling I/O Riot NG v1.0.0 — Part 1: a guided tour</h1><br />
<br />
<span class='quote'>Published at 2026-05-07T09:46:29+03:00</span><br />
<br />
@@ -23,6 +23,7 @@
<br />
<a class='textlink' href='./2026-05-08-unveiling-ior-ng-part-1.html'>2026-05-08 Unveiling I/O Riot NG — Part 1: a guided tour (You are currently reading this)</a><br />
<a class='textlink' href='./2026-05-11-unveiling-ior-ng-part-2.html'>2026-05-11 Unveiling I/O Riot NG — Part 2: install and compile once, run everywhere</a><br />
+<a class='textlink' href='./2026-05-17-unveiling-ior-ng-part-3.html'>2026-05-17 Unveiling I/O Riot NG — Part 3: under the hood</a><br />
<br />
<a class='textlink' href='https://codeberg.org/snonux/ior'>I/O Riot NG on Codeberg</a><br />
<a class='textlink' href='./2018-06-01-realistic-load-testing-with-ioriot-for-linux.html'>the original I/O Riot post (2018)</a><br />
@@ -30,7 +31,7 @@
<h2 style='display: inline' id='table-of-contents'>Table of Contents</h2><br />
<br />
<ul>
-<li><a href='#unveiling-io-riot-ng--part-1-a-guided-tour'>Unveiling I/O Riot NG — Part 1: a guided tour</a></li>
+<li><a href='#unveiling-io-riot-ng-v100--part-1-a-guided-tour'>Unveiling I/O Riot NG v1.0.0 — Part 1: a guided tour</a></li>
<li>⇢ <a href='#what-it-does'>What it does</a></li>
<li>⇢ <a href='#first-launch'>First launch</a></li>
<li>⇢ <a href='#the-seven-tabs-in-30-seconds-each'>The seven tabs, in 30 seconds each</a></li>
@@ -43,6 +44,7 @@
<li>⇢ <a href='#the-stream-tab-is-the-good-one'>The Stream tab is the good one</a></li>
<li>⇢ <a href='#filtering-more-thoroughly'>Filtering, more thoroughly</a></li>
<li>⇢ <a href='#recording'>Recording</a></li>
+<li>⇢ <a href='#what-s-new-in-v110'>What&#39;s new in v1.1.0</a></li>
<li>⇢ <a href='#what-s-still-missing'>What&#39;s still missing</a></li>
</ul><br />
<h2 style='display: inline' id='what-it-does'>What it does</h2><br />
@@ -218,6 +220,17 @@ http://www.gnu.org/software/src-highlite -->
<br />
<span>Once a parquet file is on disk, point any SQL-over-parquet tool at it — Part 3 walks through ClickHouse Local, with real query output against a 30-second capture.</span><br />
<br />
+<h2 style='display: inline' id='what-s-new-in-v110'>What&#39;s new in v1.1.0</h2><br />
+<br />
+<span>A handful of TUI additions landed in <span class='inlinecode'>v1.1.0</span> after this post was originally written against <span class='inlinecode'>1.0.0</span>. Nothing in the tour above became wrong, but a few keystrokes do more than they used to:</span><br />
+<br />
+<ul>
+<li>Three-way metric cycle on the flamegraph. <span class='inlinecode'>b</span> now toggles count → bytes → duration; the new "duration" mode weights bars by total syscall latency, which answers "where is the wall-clock time going?" in one keystroke. The same metric is wired through the bubble, treemap, and icicle views.</li>
+<li>Auto-reset timer for the live aggregates. <span class='inlinecode'>-resetTimer=&lt;dur&gt;</span> (default <span class='inlinecode'>30s</span>, <span class='inlinecode'>0</span> disables) sets the cadence at launch; the <span class='inlinecode'>I</span> hotkey cycles <span class='inlinecode'>off → 10s → 30s → 60s → 2m → 5m → off</span> while ior is running, and the dashboard chrome shows the remaining countdown. Same effect as hitting <span class='inlinecode'>r</span> on a schedule — keeps the live trie and stats engine bounded on long traces without you remembering to do it.</li>
+<li>In-place global filter swap. Pushing or popping the global filter (the Enter-on-a-cell trick, the PID/TID/probe pickers, <span class='inlinecode'>ESC</span> to pop) no longer detaches and reattaches every BPF tracepoint, so the "Attaching tracepoints..." overlay that used to flash for several seconds on busy I/O boxes is gone. Filter changes are now instant.</li>
+<li>Flame graph TUI keeps up under heavy load. Per-tick snapshot refresh runs on a background goroutine, navigation walks a precomputed ancestry index, and <span class='inlinecode'>View()</span> output is memoized. Keystrokes (pause, zoom, navigate, search) land within one frame even when the live trie is ingesting thousands of events per tick.</li>
+<li><span class='inlinecode'>-tui-fast-refresh=&lt;dur&gt;</span> (default <span class='inlinecode'>250ms</span>, <span class='inlinecode'>0</span> disables) makes the flamegraph and stream tabs&#39; high-frequency refresh cadence configurable, in case you want a lighter feel on a slow terminal or a punchier one on a busy workload.</li>
+</ul><br />
<h2 style='display: inline' id='what-s-still-missing'>What&#39;s still missing</h2><br />
<br />
<ul>
@@ -240,6 +253,7 @@ http://www.gnu.org/software/src-highlite -->
<br />
<span>Other related posts are:</span><br />
<br />
+<a class='textlink' href='./2026-05-17-unveiling-ior-ng-part-3.html'>2026-05-17 Unveiling I/O Riot NG — Part 3: under the hood</a><br />
<a class='textlink' href='./2026-05-11-unveiling-ior-ng-part-2.html'>2026-05-11 Unveiling I/O Riot NG — Part 2: install and compile once, run everywhere</a><br />
<a class='textlink' href='./2026-05-08-unveiling-ior-ng-part-1.html'>2026-05-08 Unveiling I/O Riot NG — Part 1: a guided tour (You are currently reading this)</a><br />
<a class='textlink' href='./2018-06-01-realistic-load-testing-with-ioriot-for-linux.html'>2018-06-01 Realistic load testing with I/O Riot for Linux</a><br />