render-vs-prerender (v91)

Revision 91 of this benchmark created on


Preparation HTML

<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>

Test runner

Ready to run.

Testing in
TestOps/sec
render
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();
ready
pre-rendered
render(ctx2);
ctx.drawImage(can2, 0, 0);
ready
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";
}
ready

Revisions

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