Rendering a large SVG document in WebKit has irritating performance implications. The following document was used to observe this behavior:
(there are some other large SVG documents in the same directory)
Any attempt to interact with the page causes a significant CPU spike. For example, clicking away to another app causes a second delay before the window deactivates (and similarly for reactivating). Even just clicking causes a CPU spike even though the document doesn't define any click handling.
I think this is partially due to https://bugs.webkit.org/show_bug.cgi?id=14015 (we seem to be painting more than we're displaying?). It's also probably partially due to the SVG depending on stroke hittesting. Or at least we seem to be hit-testing some path's stroke quite a bit, which is slow.
We also seem to hit-test the SVG every time, even if the hittest result isn't needed. I think the major slowness seen in mouse-move is due to the fact that we're hit-testing every time. We could invent a solution where the hit-testing wasn't done until the result was needed.