Skip to main content

Perspective Performance Profiling

Flint includes three performance tools for Perspective: a static analyzer that inspects a view.json file without any connection, and two live profilers that measure real binding behavior in a running Perspective session. Together they help you find the views, bindings, and properties that make pages slow before your operators do.

These are performance tools, not a debugger. For script debugging, see Debugger.

Prerequisites
  • Analyze View Performance works completely offline — it only needs a view.json file on disk.
  • Profile View Performance and Profile Page Bindings require the Designer Bridge module, a connected Designer, the Perspective module on the gateway, and at least one running Perspective session.

Analyze View Performance (offline)

Flint: Analyze View Performance (flint.perspective.analyzeView) performs static analysis of a Perspective view.json and opens a report in the Profiler webview, with a summary notification of component count and warnings.

Run it from:

  • The Project Browser context menu on a Perspective view
  • The Command Palette with a view.json file open in the editor
  • The Command Palette with no file open — you are prompted to select a view.json

The analyzer walks the component tree and view-level propConfig, collecting metrics such as component count, nesting depth, binding counts by type, transform counts, script events, and serialized property sizes. Each metric is compared against thresholds and reported as a medium- or high-severity warning when exceeded:

MetricMediumHigh
Component count100250
Maximum nesting depth812
Total bindings50150
Script transforms1030
Embedded views515
Flex repeaters25
Gateway-scoped scripts310
Single property size10 KB50 KB
Total view size100 KB500 KB

Each warning includes a recommendation for reducing the load. Because this is static analysis of the JSON on disk, it reflects the view's design cost — it cannot observe actual runtime binding execution.

Profile View Performance (live)

Flint: Profile View Performance (flint.perspective.profileView) captures a runtime snapshot of a single view instance in a live Perspective session. If the Designer is not connected, Flint prompts you to connect first.

You are walked through three pickers:

  1. Session — active Perspective sessions, shown with user name, project, and view count
  2. Page — pages open in that session (auto-selected when there is only one)
  3. View — view instances on that page, with component counts (auto-selected when there is only one)

The result opens in the Profiler webview: component-level metrics, binding states, binding errors, and property sizes as they exist in the running session. The completion notification summarizes total components, total bindings, and any binding errors.

Profile Page Bindings (live)

Flint: Profile Page Bindings (flint.perspective.profilePage) opens the page binding profiler webview in idle mode. From the webview you choose a session and page, set a poll interval, and start a recording; Flint then polls binding activity on that page and streams pending, resolved, and error counts into the timeline. A reload-and-record mode restarts a view and captures its bindings resolving from a cold start, which is useful for measuring initial page-load behavior.

Stop the recording from the webview when you have captured enough data. Closing the panel stops the recording automatically.

Limitations

Limitations
  • The live profilers require a running Perspective session — they cannot profile a view that no one has open, and they report an error if the Perspective module is not available on the gateway.
  • Static analysis thresholds are heuristics: exceeding one does not guarantee a slow view, and staying under them does not guarantee a fast one.
  • These tools observe and measure only. They do not modify views, pause execution, or intercept the page's own scripts — script debugging is a separate feature with its own constraints.