html5 double layer canvas vs on layer canvas (v11)

Revision 11 of this benchmark created on


Description

Test des performances d'affichage de canvas html5.

En mode double layer : un premier canvas affiche une image de fond et un second canvas (affiché au dessus du premier) s'efface puis affiche une petite image.

En mode one layer : un seul canvas s'efface, puis affiche une image de fond et enfin une petite image.

Preparation HTML

<div style="position: relative; width: 400px; height: 400px">
<canvas id="background" width="400" height="400" style="position:absolute;z-index:0;border: 1px solid #000000;">
</canvas>
<canvas id="foreground" width="400" height="400" style="position:absolute;z-index:1;border: 1px solid #000000;">
</canvas>
</div>
<script>
var bgCtx= document.querySelector('#background').getContext('2d');
var fgCtx= document.querySelector('#foreground').getContext('2d');

var imgBg = new Image();
imgBg.src = 'http://www.faire-des-jeux.com/jsperf/background.jpg';

                
var     imgFg = new Image();
imgFg.src = 'http://www.faire-des-jeux.com/jsperf/module.png';
</script>

Setup

fgCtx.clearRect(0,0,400,400);
    bgCtx.clearRect(0,0,400,400);
    bgCtx.drawImage(imgBg,0,0);
    fgCtx.drawImage(imgFg,200,200);

Test runner

Ready to run.

Testing in
TestOps/sec
one layer canvas
fgCtx.clearRect(0,0,400,400);
fgCtx.drawImage(imgBg,0,0);
fgCtx.drawImage(imgFg,200,200);


 
ready
double layer canvas
fgCtx.clearRect(0,0,400,400);
bgCtx.clearRect(0,0,400,400);
bgCtx.drawImage(imgBg,0,0);
fgCtx.drawImage(imgFg,200,200);
 
ready
double layer only one clear
fgCtx.clearRect(0,0,400,400);
bgCtx.drawImage(imgBg,0,0);
fgCtx.drawImage(imgFg,200,200);
ready
double layer only one clear one draw
fgCtx.clearRect(0,0,400,400);
fgCtx.drawImage(imgFg,200,200);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.