I see that he is redrawing the whole chart on each refresh: <a href="http://github.com/joewalnes/smoothie/raw/master/smoothie.js" rel="nofollow">http://github.com/joewalnes/smoothie/raw/master/smoothie.js</a> - .save() and .restore()<p>One thing he can try to get speed improvements is to absolutely position a double-width canvas tag in an iframe and move the entire canvas tag one pixel to left on each refresh. Then he can just paint the new data on the right-most visible pixel. One canvas has moved -width px, just do a .save() / .restore() and reset it to left: 0px.<p>I'm not certain if it will help for sure but I have an inkling it might.
It's also working near perfectly in Opera 10.61. (There is a bug initially, when the lines should start in the middle of the chart, rather than on the left)