render-vs-prerender

JavaScript performance comparison

Revision 92 of this test case created by

Preparation code

<canvas id="canvas1" width="500" height="500" style="position:absolute;z-index:1"></canvas>
<canvas id="canvas3" width="500" height="500" style="position:absolute;z-index:2"></canvas>
<script>
  var can = document.getElementById('canvas1');
  var ctx = can.getContext('2d');

  var can3 = document.getElementById('canvas3');
  var ctx3 = can3.getContext('2d');

  var can2 = document.createElement('canvas');
  can2.width = 150;
  can2.height = 150;
  var ctx2 = can2.getContext('2d');

  function render(ctx) {
  ctx.beginPath();
  ctx.strokeStyle = 'red';
  ctx.lineWidth = 4;
  ctx.moveTo(10,10);
  ctx.lineTo(10,30);
  ctx.lineTo(30,30);
  ctx.lineTo(40,70);
  ctx.quadraticCurveTo(72,43,22,12);
  ctx.quadraticCurveTo(12,43,12,102);
  ctx.stroke();
}

var s=false;
  
</script>
    

Preparation code output

<canvas id="canvas1" width="500" height="500" style="position:absolute;z-index:1"></canvas> <canvas id="canvas3" width="500" height="500" style="position:absolute;z-index:2"></canvas>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
render
render(ctx);
pending…
pre-rendered
render(ctx2);
ctx.drawImage(can2, 0, 0);
pending…
pre-rendered-visibility
if (s === true) {
  s = false;
  render(ctx3);
  can3.style.visibility = "visible";
  can.style.visibility = "hidden";
} else {
  render(ctx);
  s = true;
  can3.style.visibility = "hidden";
  can.style.visibility = "visible";
}
pending…

Compare results of other browsers

Revisions

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

0 Comments