• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nagayon-935 / mping
89%
main: 89%

Build:
Build:
LAST BUILD BRANCH: feat/group-table-sections
DEFAULT BRANCH: main
Repo Added 04 Feb 2026 04:21PM UTC
Files 41
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH feat/table-virtualization
branch: feat/table-virtualization
CHANGE BRANCH
x
Reset
  • feat/table-virtualization
  • add-dns-customization
  • add_copilot_reviewer
  • add_function_port_check
  • ci/coveralls-continue-on-error
  • docs/readme-english
  • feat/asn-org-display
  • feat/group-header-banner
  • feat/group-table-sections
  • feature/configurable-thresholds
  • feature/json-export-and-yaml-watch
  • feature/linux-support
  • feature/mtr-monitor
  • feature/phase1-tcp-udp-latency
  • feature/phase2-geoip-asn
  • feature/phase3-route-flap
  • feature/phase4-http-healthcheck
  • feature/phase5-yaml-groups
  • feature/phase6-dynamic-hosts
  • feature/phase7-paris-traceroute
  • feature/pmtu-hop-detection
  • feature/port-monitor-improvements
  • feature/refactor-cleanup
  • feature/traceroute-hops-initttl
  • file_option
  • fix-ui-layout-duplication
  • fix/code-review-issues
  • fix/go-review-issues
  • fix/mtr-ipv4-ttl-race
  • fix/receiver-wg-and-race-conditions
  • fix/review-issues
  • fix/stability-issues
  • fix/ui-rendering-issues
  • main
  • refactor/code-cleanup
  • refactor/go-review-fixes
  • refactor/hardcoded-constants
  • refactor/improvements
  • refactor/phase-5-ui-restructure
  • refactor/td-45-monitor-status-log-dedup
  • refactor/td-46-52-followups
  • remove-paris-traceroute

23 Jul 2026 03:33PM UTC coverage: 89.316%. First build
30064435438

Pull #51

github

nagayon-935
feat: render only the visible row window in the Ping Monitor table

update() called SetCell for every target row every tick regardless of tableMaxRows (10), even though tview only draws the visible viewport — at 100+ targets this meant 1000+ TableCell allocations per tick for rows nobody could see.

Add visibleRowWindow(offsetRow, totalDataRows), applied to all three render paths (flat, group, compact) in Pass 2 — table_renderer.go's rowCount stays the full logical total unchanged, so input_handler.go's scroll math (maxOffset) is unaffected by how few rows actually get SetCell'd. Pass 1 (GetView, alert/log tracking) is deliberately NOT windowed: an off-screen host's loss/alert state must still be tracked and logged even while scrolled away from it.

Group-aware rendering windows by table-row index into groupRowMap, not target index, since a group header row doesn't correspond to any target — a header that falls inside the window must still render even when most of that group's members don't.

Risk: SetOffset (scroll) changes what's visible independent of any data change, but rows outside the previous window were never rendered — without a synchronous re-render, a scroll could show blank rows until the next tick (worse now that perf/dirty-redraw-gate can skip ticks for up to 1s when nothing changed). Fixed by having input_handler.go call a new forceUpdate callback (wired to tr.update in tui.go) immediately after every SetOffset, with rowRenderMargin as a small additional safety net.

Adds direct render-window tests (including the group-header-off-window edge case), an end-to-end 100-target scroll smoke test, and a benchmark documenting Pass 2's windowed cost at a large scrolled offset.
Pull Request #51: perf+feat: land getview-consolidation / dirty-redraw-gate / table-virtualization stack onto main

131 of 131 new or added lines in 10 files covered. (100.0%)

5091 of 5700 relevant lines covered (89.32%)

768.43 hits per line

Relevant lines Covered
Build:
Build:
5700 RELEVANT LINES 5091 COVERED LINES
768.43 HITS PER LINE
Source Files on feat/table-virtualization
  • Tree
  • List 40
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
30064435438 feat/table-virtualization feat: render only the visible row window in the Ping Monitor table update() called SetCell for every target row every tick regardless of tableMaxRows (10), even though tview only draws the visible viewport — at 100+ targets this meant 1000+ Table... Pull #51 24 Jul 2026 03:31AM UTC nagayon-935 github
89.32
See All Builds (127)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc