PerformanceLine measurements

Inspect recorded preview measurements and jump to their source context.

Collect and choose samples

Render > Profile (PerformanceLine) opens the panel. Measurement is off when the app starts: the pulse button at the right of the timeline bar starts and stops recording for the session (recording costs preview frames, because the panel redraws with every UI update). Diagnostic options opens Preferences; diagnostic collection and the runtime category must also be enabled there.

Effect filters to the current particle, Show to the current show, and App includes recorded preview sessions. Frame uses individual samples. Tick groups samples in 1/30-second intervals; Second groups them in one-second intervals, separately for each recorded document.

Grouped samples retain peak particle/emitter counts, worst frame interval and preview CPU time, summed root event calls and averaged FPS. The graph shows up to the latest 600 samples in the selected view.

Read and navigate

Click Particles, Emitters, Root event calls, Frame interval or FPS to hide or show that graph series. This does not delete measurements.

Click a graph bar, spike or issue timestamp to pause and seek the associated open particle or show. If its document has been closed, the app reports that it is no longer open.

Overview reports measured preview counts, frame cadence and CPU work. Samples are recorded only while the preview is playing. Spike flags and issues mark frames whose Preview CPU (particle update and draw submission per frame, the part that scales with particle count) is at least twice the average of the samples in view; Frame interval is the wall time between frames and also includes the editor UI and scheduling. There is no budget, target or score: the panel reports measurements only.

Fix with Axe opens the Axe panel with the selected measurement and a draft analysis request. It does not immediately edit the particle or send the request.

Optimize and Revert

Measured child spawns identifies source effects and events, their peak per tick and total while recording. Optimize spreads a separable creation list or timeline sequence across 2, then 4, then 8 ticks. Every entry and its payload is retained in authored order; rates, lifetimes, colors and textures stay unchanged. The projected entry peak is an estimate, not a measured FPS gain.

The first Optimize click for a pack reviews its file write. Each step saves an exact adjacent backup and durable Revert history. Revert last step or all for pack restores exact source bytes and removes the step backups. Modified sources or unsaved/locked effect edits are protected. Random choices and indivisible or already-spread events are left alone. A spread that could outlast the known emitter/particle lifetime is refused.

Optimize refreshes open effects and embedded show copies. Record playback again to compare actual peaks. Diagnostics and the measurement pulse control spawn collection too.

Clear, export and resize

Clear measurements removes all currently recorded samples, without editing the particle or show. Collection can immediately add new samples while the pulse button is on; click it again to keep it stopped.

Export measurements exports cyberstorm-performance.json with the selected scope, resolution, units and retained matching samples. The export can include more history than the graph displays.

Drag the bottom panel divider to resize it; double-click the divider to restore the default. Scroll Overview to reach its remaining statistics and issue actions.