Performance Limits

Reference for what each render mode draws, the design sizes and zoom levels at which Kanvas gates features, how Adaptive mode decides to change modes, the enforced limits on a design, and what to adjust when a design feels slow.

Kanvas draws a design on a canvas and redraws it on every pan, zoom and edit. The cost grows with the number of components and relationships and with how much detail each one carries. Kanvas controls that cost in four ways: the render mode you choose, gates that turn expensive features off past a design size or below a zoom level, Adaptive mode, which changes the render mode for you, and a small number of enforced limits.

For the reasoning behind render modes, see Render Modes.

Switching render mode never changes the design. Components, relationships, configuration and layers stay as they are. Only what Kanvas draws changes. Full is the default.

Drawn elementFullMediumWireframeView-only
Component imagesYesYesNoNo
Gradient fillsYesNoNoNo
Relationship styling (color, curves, arrow style)YesYesNo. Thin, straight, light gray linesYes
TagSetsYesNoNoNo
Expand and collapse badgesYesYesNoNo
Compound-component, label and external-link badgesYesNoNoNo
Validation and dry-run error badgesYesNoNoNo
Managed-by-Meshery and terminal-session badges (Operator)YesNoNoNo
Text-box contentYesYesNoNo
Animation when a component is addedYesNoNoNo
Animated layoutsYes, on designs within the limit belowNoNoNo
Editing and selecting on the canvasYesYesYesNo. Components are locked and take no pointer input

Layer visibility from the Layers panel applies in every mode. A layer you hide stays hidden.

Render mode applies to Designer and Operator alike, and to the whole canvas at once. It is session state: it is not saved in the design, not shared with collaborators and not remembered across sessions. Set it from the render mode switcher, which appears in the Options dialog and in the Designer toolbar, or from the render URL parameter.

A gate turns a feature off while a condition holds and turns it back on when the condition clears. Kanvas re-checks gates as the design changes, as you change render mode, and as you zoom, so you never reload to recover a feature.

FeatureGateApplies in
Auto-pan on DragNeeds your setting on, and at most 100 components and 100 relationships drawn in Full, 500 in Medium, 1,000 in Wireframe and View-onlyDesigner
Animated layoutFull mode only, and only while the design has no more than 50 components, no more than 50 relationships and no more than 100 edges drawn. Past that, a layout still applies its positions, without the animationDesigner
TagSetsFull mode only, and at most 30 drawn. Past 30, Kanvas skips the rest and shows the warning “Skipped rendering of N matchlabels relationships due to limit of 30”Designer
Feasibility evaluationZoom above 0.5 divided by the display pixel ratio. That is 0.5 on a standard display and 0.25 on a display with a pixel ratio of 2Every mode
Component style toolbarThe same zoom thresholdEvery mode

TagSets are the only relationship type with a rendering limit. See TagSets.

Adaptive mode lowers the render mode when the canvas becomes slow and raises it again when the canvas recovers.

PropertyValue
Turn onThe Adaptive switch in the render mode switcher, or adaptive=true in the URL
DefaultOff
LadderFull, Medium, Wireframe. View-only is never entered or left automatically
CeilingThe highest mode Adaptive may use. It starts at Full. While Adaptive is on, the switcher shows the ceiling, labeled AUTO, not the mode currently in use
SignalHow long the canvas takes to produce the next frame after each pan or zoom, taken as the 95th percentile of the last 20 samples
Idle costNone. Kanvas samples only when you pan or zoom
Step downWhen the 95th percentile exceeds 80 ms. After a step down, Kanvas ignores samples for 3 seconds
Step upWhen the 95th percentile stays under 30 ms for 10 consecutive samples, more than 5 seconds after the last change, and the next mode is not above the ceiling
Notification“Switched to mode mode for better performance” on a step down. “Performance improved - switched to mode mode” on a step up

Behavior to plan around:

  • Turning Adaptive on sets the canvas to the ceiling at once. With the default ceiling, that is Full.
  • Recovery is one step. After a step down, Adaptive recovers at most one step on its own. It steps down again if the canvas slows again, and it does not climb further until then. To return to a higher mode, turn Adaptive off and choose the mode.
  • A new ceiling applies the next time you turn Adaptive on. Choosing a ceiling in the switcher while Adaptive is already on updates the label but does not change the running behavior. Turn Adaptive off and on to apply it.
  • Turning Adaptive off keeps the current mode. The canvas stays in whichever mode Adaptive last chose, and manual selection resumes.
  • The thresholds are fixed. You cannot set them per user or per design.
LimitValueWhere it is enforced
Components per designSet by the organization’s plan: 100, 200, 100 and 300 for Personal, Team Designer, Team Operator and EnterpriseLayer5 Cloud, when a design is saved or imported. See Components per design
Image or text file added to a design512,000 bytes (about 500 KB) each, the same on every planThe Kanvas canvas, when a file is dropped, pasted or uploaded. Images are embedded in the design, so each one adds to its size
TagSets drawn30The canvas, as described above
Canvas zoomMinimum 0.1 (adjustable from 0.1 to 5), maximum 30 (adjustable from 0.1 to 30)The Options dialog. Each person sets their own

Kanvas enforces no cap on the number of relationships in a design or on how many images it holds. Large designs and embedded images still enlarge what Kanvas saves and synchronizes with collaborators, so loading, saving and live editing slow down as a design grows.

Work from the cheapest change to the most disruptive.

IfThen
Panning and zooming feel heavySwitch to Medium, or turn on Adaptive. Switch to Wireframe for a layout pass on a very large design
Dragging a component to the edge does not scrollCount components and relationships against the auto-pan limit for your mode
Only part of the design matters right nowHide the layers you do not need in the Layers panel. Hidden components and relationships come off the canvas, and the design keeps them
TagSets are missingCheck the mode is Full, the TagSets layer is on, and the design has no more than 30
The design saves slowly or collaboration lagsRemove unused embedded images, and prefer SVG or WebP images over PNG, JPEG and GIF files
The design keeps outgrowing the mode you preferSplit it into several designs
Screenshots or demos need a steady pictureTurn Adaptive off and choose Full, so the mode cannot change mid-capture

Kanvas can draw the canvas with WebGL instead of the standard 2D canvas. It is an advanced option for diagnosing rendering, off by default, and available only from the Debug Mode panel, which appears when Enable Debugger is on in the Options dialog.

  • Scope. The choice is stored in your browser, not your account, and applies the next time a canvas loads. Reload after changing it.
  • Trade-offs. The WebGL path draws dashed and dotted relationship lines as solid lines, draws every arrowhead as a triangle, and does not hide labels at low zoom.
  • Fallback. Above a zoom of 7.99 Kanvas draws with the standard canvas. After a browser loses its WebGL context, Kanvas uses the standard canvas for the rest of the browser session.
  • Browser support. The panel reports when the browser does not support WebGL 2.

Related Reading