When rendering complex shapes onto canvas — those consisting of thousands of paths — it's usually faster to have them cached so that they get rendered with ctx.drawImage
.
This essentially replaces thousands of low-level commands (lineTo
, moveTo
, bezierCurveTo
, arcTo
, etc.) with a single drawImage
.
The downside is an higher memory usage since all svgs gets a canvas with a image copy of the svg. During Object scaling, this canvas gets repainted.