Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Canvas context2d: Image vs ImageBitmap vs Canvas (with clear canvas and alpha true)
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0
Browser:
Chrome 139
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
7 months ago
Test name
Executions per second
Image
1469454.6 Ops/sec
ImageBitmap
1047591.6 Ops/sec
Canvas
1544821.9 Ops/sec
Script Preparation code:
var img = new Image(); var imageBitmap; var doneLoading = false; var canvasImage = document.createElement('canvas'); canvasImage.width = 700; canvasImage.height = 700; var canvasImageBitmap = document.createElement('canvas'); canvasImageBitmap.width = 700; canvasImageBitmap.height = 700; var canvas = document.createElement('canvas'); canvas.width = 700; canvas.height = 700; var canvasCanvas = document.createElement('canvas'); canvasCanvas.width = 700; canvasCanvas.height = 700; var ctxImage = canvasImage.getContext('2d'); var ctxImageBitmap = canvasImageBitmap.getContext('2d'); var ctx = canvas.getContext('2d'); var ctxCanvas = canvasCanvas.getContext('2d'); async function globalMeasureThatScriptPrepareFunction() { return new Promise((resolve, reject) => { img.addEventListener('load', function() { createImageBitmap(img) .then(function(bitmap) { imageBitmap = bitmap; debugger; doneLoading = true; console.log("bitmap preparation done"); resolve(true); }, false); ctx.drawImage(img, 0, 0); console.log("canvas preparation done"); }); img.src = 'https://1.bp.blogspot.com/-52MtzD0GfX0/WvP52CL1WjI/AAAAAAAAOVw/_OpK4JHeWK01d-7IiZ6vzojYGhXqLRXrACLcBGAs/s1600/EMxediL.jpg'; }); }
Tests:
Image
ctxImage.drawImage(img,0,0); ctxImage.clearRect(0,0,700,700);
ImageBitmap
ctxImageBitmap.drawImage(imageBitmap,0,0); ctxImageBitmap.clearRect(0,0,700,700);
Canvas
ctxCanvas.drawImage(canvas,0,0); ctxCanvas.clearRect(0,0,700,700);