I ported my incremental Penrose Tiling from SVG to Canvas, and am at a loss to explain the difference in performance. If you have an SVG and Canvas aware browser, give this a whirl and tell me what you see.
The issue seems to have something to do with setTimeout (both run virtually instantaneously with this small sample — it is when the image is rendered incrementally that the inexplicable slowdown occurs). What is even more puzzling is that the difference in timings is about the same on both Firefox 1.5 and Opera 9.0.
Note: whichever is run second seems to get a minor boost from whatever initialization is already done, so be sure to refresh and try the tests in the other order before reporting results.