Product evaluation

Compare ViewAlyzer

ViewAlyzer matches many core capabilities of Percepio and SEGGER SystemView, and goes further in workflow automation, AI agent control, and live trace tuning. The GUI is just one interface: everything it can do is accessible through the CLI, ready for CI pipelines and automated workflows. We’re building on those strengths and working to close the remaining gaps with every release.

What does recording
cost the application?

The same telemetry workload with recording off, with ViewAlyzer, and with Percepio.

Measured 17 September 2026 · STM32N6570-DK at 600 MHz · 750 sample blocks/s · three 60-second runs per build.
MeasurementRecorder offViewAlyzerPercepio
CPU busy estimate8.293%10.412%10.803%
Receive-to-summary · mean56.521 µs62.623 µs62.853 µs
Host reply · median340.667 µs362.167 µs360.633 µs
Timer interval error · mean absolute0.022 µs0.416 µs0.261 µs
Total allocated RAM375,752 B396,752 B395,264 B
Missing application replies · all three runs000

Timing and CPU values are averages of three run-level measurements. CPU includes active probe collection. RAM is allocated memory in a RAM-loaded build, including code and constants. Recorder configurations and event coverage differ; these results describe this workload, not a universal ranking. SEGGER SystemView was not measured in this experiment.

The full report includes every run, charts and variation, code/RAM cost, trace loss, collection settings, and limitations.

ViewAlyzer, Percepio,
and SEGGER SystemView.

Documentation snapshot: 3 August 2026. Capabilities and licensing may change. Use the category links to jump through the matrix and scroll horizontally to see every product.

Compare capture paths, analysis views, automation, and evaluation limits. This is our feature comparison based on the published documentation noted below; question marks mean the documentation did not establish support. For measured recorder overhead, read the telemetry application report.

✓SHIPPING, INCLUDING WHERE IT IS SOLVED A DIFFERENT WAY HALF SOLVED, GAP NOTED ✕NOT AVAILABLE ?NOT ON THEIR PUBLISHED SHEET ONLY IN VIEWALYZER
Feature comparison of ViewAlyzer, Percepio View, Profile, Tracealyzer, and SEGGER SystemView. Documentation snapshot: 3 August 2026.
Feature Percepio SEGGER Breakpoint
ViewFree ProfilePaid TracealyzerPaid SystemViewFree or paid ViewAlyzer FreeNo license needed ViewAlyzerLicensed
Probes and transports
Probes and transportsWhat it can capture through ? ✓J-Link ✓Any interface, per their sheet ✓J-Link for streaming ✓✓ST-Link, J-Link, CMSIS-DAP, UDP, UART, Custom
Only in ViewAlyzer
Live variable watchingNo firmware instrumentationOnly in ViewAlyzer ✕ ✕ ✕ ✕Data Plot needs the firmware to send the values ✓100 Hz, 4 symbols ✓1 kHz and up on a running target. No halt, no reset
Math on tracesNode graph of formulas over channelsOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓Wire a trace into a formula node and graph the result, live during a capture. A formula can call any of 24 built-in maths functions, reference other channels as variables, look back N samples, and feed its own last output back for IIR filters
Peripheral register browserCMSIS-SVDOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓Peripherals, registers and bit fields from your SVD. Tick any of them to poll and graph on a running target
ELF symbol browserOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓Searchable, sortable symbol table with a size heat map
Firmware memory analysisFrom the ELF and MAPOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓Flash and RAM capacity, section layout, and the largest sections with the linker source that pulled them in
Function call graphOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓Built from the ELF: pick a root, set a depth, pan and zoom the graph
Trace fingerprintsRegression checks against a known-good runOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓Freeze a good capture as a small fingerprint file that carries a tolerance for every metric, or let it learn normal variance from several runs. Every new capture then gets a pass, warn or fail verdict per metric, in the app and from a CLI compare that fails your CI build on a regression.
IPC message anatomyWhere one message spent its timeOnly in ViewAlyzer ✕ ✕ ✕Aggregate IPC metrics, no per-message pairing ✕ ✓✓Every queue send is paired with the receive that dequeued it, every notification and semaphore give with its take. Pick one exchange and see how long it sat in the queue versus how long the consumer took, then jump the timeline zoomed to that exact moment. A full-capture latency scatter marks backlog peaks, so messages that were slow because the queue was deep stand out at a glance. The same per-path pairing stats print from the headless CLI.
MCP server for AI agentsOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓An agent can start a capture, query it, run SQL and read the license state
Token-budgeted query APIBuilt for LLM context limitsOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓Three tiers with hard token caps. Ask for too much and you get a fix, never a silent truncation
SQL over a recordingOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓Read-only joins and aggregation, from the CLI or from an agent
Any agent drives the live viewModel agnostic, no plugin per vendorOnly in ViewAlyzer ✕ ✕ ✕ ✕The control port can start, stop and export, not move the view ✓✓Tool calls and a harness, not a plugin for one vendor's model, so point whatever agent you already use at it. Available to demo, and licensable if you want it inside your own IDE or agent
Python client packageOnly in ViewAlyzer ✕ ✕ ✕ ✕ ✓✓Python bindings to script captures, replay and analysis, with typed results
Core visualization
Trace view ✓ ✓ ✓ ✓ ✓Task / ISR swim lanes, 10 lanes ✓Unlimited lanes, nested function spans, contention links
Event log ✓ ✓ ✓ ✓ ✓✓Virtual scroll over millions of rows, search, relation links, click to seek
CPU load graph ✓ ✓ ✓ ✓ ✓✓Stacked per-task bands, hover breakdown, busy-vs-idle headline load
User events shown in trace ✓ ✓ ✓ ✓ ✓✓Unlimited traces, 8 widget types and counting
Trace snapshotsPost-mortem grab of a target buffer ✓up to 16 KB ✓unlimited ✓unlimited ✓Single-shot or post-mortem; the buffer can be dumped with any debugger ✓✓Firmware keeps a post-mortem ring in RAM. Attach a probe after a crash or an untethered run, and one button or one CLI flag scans for the ring and saves a normal recording
Trace streaming ✕ ✓J-Link only ✓ ✓J-Link RTT ✓✓Any probe, any transport. Live streaming is the default mode, not an upgrade
Profiling and analysis
Communication flow ✕ ✓ ✓ ✕API calls show in the event list, no flow view ✓✓A Comms panel turns the capture into paths: every producer, object and consumer combination gets a sortable row with rate, median and p99 latency, blocking, and failed operations like full-queue sends and wait timeouts. Give-to-take links and mutex contention are still drawn right on the timeline
User event signal plot ✕ ✓ ✓ ✓Data Plot, with scaling and offset per signal ✓✓Line, bar, histogram, gauge, counter, table, toggle, register bitfield
Heap usage ✕ ✓ ✓ ✓Per-heap bytes used and free, with allocation sources ✓✓Per-heap totals, and every failed allocation with the size it wanted
Stack usage ✕ ✓ ✓ ✓Per task, where the kernel reports it ✓✓Per-task high-water marks
Timing metrics ✕ ✓ ✓ ✓Min, quartiles, max and activation counts per context ✓✓Min / max / mean / jitter, percentiles, preemption counts, priority data
Advanced
Streaming over any interface ✕ ✕ ✓ J-Link RTT probe-side. The IP and UART recorders move the work into your firmware ✓✓SWO / ITM, J-Link RTT, RAM buffer over SWD, direct ST-Link USB, CMSIS-DAP, UDP, serial
Unlimited trace length ✕ ✕ ✓ ✓Uncapped, including under the non-commercial license ✕5 s per capture ✓
Interval tracing ✕ ✕ ✓ ✓Performance markers: start, stop, mark ✓✓Function spans from firmware, and highlight any region for its own statistics
State machine tracing ✕ ✕ ✓ ✕ Visible through toggle and register widgets. No state diagram yet
Runnable tracingAUTOSAR runnables ✕ ✕ ✓ ✕ ✕✕Function spans are the nearest equivalent
Interval plot ✕ ✕ ✓ Box plot and histogram of durations, not durations over time ✓✓Execution and period scatter, event-interval scatter, viewport histogram
Instance graphs ✕ ✕ ✓ ✕ ✓✓Per-instance scatter. Click the outlier to jump to it
Statistics report ✕ ✕ ✓ ✓Contexts and Runtime windows, exportable ✓✓Overview panel, plus stats tables inside every recording
Data export ✕ ✕ ✓ ✓CSV of events, contexts and terminal output ✓✓The recording is a SQLite database. There is no export step
Advanced RTOS analytics ✕ ✕ ✓ Running, blocked and suspended totals. No inversion detection ✓✓Priority inversion, contention detail, preemption, registry overflow warnings
Multiple RTOS and bare metal ✕ ✕ ✓ ✓embOS, Micrium, uC/OS II and III, FreeRTOS, ThreadX, NuttX, Zephyr, plus no-OS ✓✓Zephyr, FreeRTOS and bare metal from one recorder. Fewer kernels than SystemView today: gap noted, more adapters on the way
Multicore recording ? ? ? ✓Per-core event lists and CPU load, time synchronized ✕✕Single core today
SDK for custom integrations ✕ ✕ ✓ ✓Documented C API, recorder sources on GitHub ✓✓C recorder API, documented wire protocol, custom transport hook, Python client package
ELF support ✕ ✕ ✓ ✓An ELF in the project names resources and locates the RTT block ✓✓Symbol browser, symbol-driven trace filters, live variable watching, source navigation
Project settings for multiple targets ✕ ✕ ✓ ✓Projects hold ELFs, recorder config and recordings ✓✓One config file per board, checked in beside the firmware
Linux tracing with LTTng ✕ ✕ ✓ ✕ ✕✕MCU targets only
Floating licenses ✕ ✕ ✓ ?Group and company-wide licenses; floating not stated ✕No activation needed ✕Machine-bound activation today. Talk to us if you need floating, site or another arrangement and we will work something out
Free edition terms ✓Free, with most analysis features removed ✕Paid only ✕Paid only ✓Uncapped, non-commercial use only ✓Capped, but commercial use allowed ✕Paid
Embedding and OEM termsRun it inside your own product ? ? ? ? ✓✓Licensing can cover running the engine inside your own backend and serving the results through your own front end. Ask and we will write the terms
OEM Trace DomainsMake proprietary technology first-class in ViewAlyzer ? ? ? ? ✓✓Private or distributable trace domains with dedicated event semantics, decoders, timeline lanes, statistics, filters and purpose-built visualizations for your silicon, protocol stack or firmware platform
Automation, scripting and AI access
Fully scriptable headless binarySame binary, no GUI ✕ ✕ ? Flags and a TCP port drive the desktop app. There is no non-GUI binary ✓✓Record, replay, query, doctor. Stable output lines and exit codes to script against
Full CLI parityAny metric the GUI shows, headless ✕ ✕ ✕ Events, contexts and terminal export to CSV, driven through the GUI ✓✓Every number the panels show is reachable without a display: CSV metrics from replay, JSON from the tiered query API, or SQL over the same tables the panels read. Stable output lines and documented exit codes to assert on in CI
Capture and hardware reach
Published recorder footprint ? ? ? ✓Under 2 KB ROM, about 600 B RAM, about 200 B stack per context ✓✓About 2.7 KB flash, 0.4–0.7 KB recorder state plus any configured transport buffer, 80–100 B stack on the normal integer-event path, and no heap allocation across paired ARM M0+/M3/M4F/M33 builds
On-target CPU work ? ? ? ✓Under 200 cycles, quoted as under 1% at 10,000 events/s on a 200 MHz ARM M4 ✓✓No background analysis loop. Each selected event is timestamped, encoded and emitted; disabled categories compile out. Decoding, storage and analysis run on the host
Attach without resetting the target ✕ ✕ ? ✓RTT attach and post-mortem read leave the target running ✓✓Attach to a running system mid-flight and still get named tasks
Exact event-loss accounting ✕ ✕ ✕ Overflow events say data was lost, not how much ✓✓Know exactly how many events were lost, not just that something was
Works without vendor CLIs installed ✕ ✕ ✕ ✓Self-contained, but streaming needs J-Link hardware ✓✓Direct probe drivers. Vendor tools help, they never gate you
VS Code extensionWorking inside the editor TraceExporter saves a snapshot and opens it in the desktop app ✕Standalone app. SEGGER’s VS Code extension is for J-Link debugging ✓✓The trace UI itself runs inside VS Code, not a hand-off to a desktop app. The same UI runs inside BKPT Studio
Windows, macOS and Linux ✓ ✓ ✓ ✓x64 and ARM on all three ✓✓Native builds on all three, plus a Debian package

Percepio columns reproduce their published comparison sheet and the SystemView column follows the SEGGER SystemView User Guide (UM08027, v4.10), both read 3 August 2026. Where a competing product may have a capability its documentation does not cover, the cell is a question mark rather than a claim of absence. SystemView is free of charge for non-commercial use with no feature limits, and $298 for a perpetual single-user commercial license. ViewAlyzer Free is the same binary as the licensed build with capture caps applied: 5 second captures with a 5 second cooldown between them, 10 timeline lanes, variable watching at 100 Hz across 4 symbols. User traces are not capped. Nothing is feature gated out of it.

Ready for a longer look?

Choose Solo, Team 3, or Team 5 in the checkout.