gwt canvas context.drawImage速度非常慢

gwt canvas context.drawImage速度非常慢,gwt,canvas,image-loading,requestanimationframe,Gwt,Canvas,Image Loading,Requestanimationframe,我正在使用GWT画布使用requestAnimationFrame全屏(在draw()中)绘制50幅相同的16x16图像,主循环如下: AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() { public void execute(double timestamp) { mainLoop(deltaTimeInMs);

我正在使用GWT画布使用
requestAnimationFrame
全屏(在draw()中)绘制50幅相同的16x16图像,主循环如下:

AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() {
                    public void execute(double timestamp) {
                        mainLoop(deltaTimeInMs);
                        AnimationScheduler.get().requestAnimationFrame(this,canvasElem);
                    }
                }, canvasElem);


void mainLoop(double deltaTime) {
        calcFPS(deltaTime);
        clearContext();
        update(deltaTime);
        draw();
}
我使用
ClientBundle
将图像存储为
DataResources
。它们被转换为图像和
ImageElement
,以便能够调用context.draw

渲染50幅图像之前的FPS约为60FPS。渲染时,FPS大约为20FPS。(在chrome和mozilla中)处于开发模式


我认为图像加载可能有问题。

您是否愿意为您的解决方案添加一些解释?为什么它比原来的问题快?速度快吗?这是一个巨魔的回答。。。他刚刚删除了draw()调用。请向下投票。它运行如此缓慢的原因是开发模式。在GWT2.5+版本中,它在SDM上运行良好(superdev模式)。
AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() {
                    public void execute(double timestamp) {
                        mainLoop(deltaTimeInMs);
                        AnimationScheduler.get().requestAnimationFrame(this,canvasElem);
                    }
                }, canvasElem);


void mainLoop(double deltaTime) {
        calcFPS(deltaTime);
        clearContext();
        update(deltaTime);