Может я что-то не то делаю, но в хроме вкладка Profiles показывает что тормозит вот эта функция canv.onmousemove
Так что возможно вы не туда смотрите
В общем то название функции намекает что она вызывается при перемещении мыши. И добавление в код console.log(event) показало что функция действительно вызывается при перемещении курсора мыши. А функция то какая-то навороченная.