My point was more to compare libraries than to create the best canvas performance. But you are right: simple plain canvas is usually pretty fast.
Generally speaking, avoid GC, and avoid setting state that's already set... if you do these two things and use engines that do these two things, it's usually going to be more than fast enough :)