diff options
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.html | 20 |
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's new in v1.1.0</a></li> <li>⇢ <a href='#what-s-still-missing'>What'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'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=<dur></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=<dur></span> (default <span class='inlinecode'>250ms</span>, <span class='inlinecode'>0</span> disables) makes the flamegraph and stream tabs' 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'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 /> |
