Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
PutImageData vs DrawImage v3
GetImageData with PutImageData vs just DrawImage
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Android 11; Mobile; rv:109.0) Gecko/117.0 Firefox/117.0
Browser:
Firefox Mobile 117
Operating system:
Android
Device Platform:
Mobile
Date tested:
one month ago
putImageData
1K/s
fillRect
8/s
View exact numbers
Test name
Executions per second
✓
putImageData
1,335 Ops/sec
fillRect
8 Ops/sec
HTML Preparation code:
<canvas id='aa' width='100' height='100'></canvas> <canvas id='bb' width='100' height='100'></canvas>
Script Preparation code:
var aa = document.getElementById('aa').getContext('2d'); var bb = document.getElementById('bb').getContext('2d'); var pixels = new Uint8ClampedArray(100 * 100 * 4); var imgdata = new ImageData(pixels, 100, 100);
Tests:
putImageData
for (var y = 0; y < 100; y++) { for (var x = 0; x < 100; x++) { var i = y * 100 * 4 + x * 4; pixels[i + 0] = Math.floor(Math.random() * 256); pixels[i + 1] = Math.floor(Math.random() * 256); pixels[i + 2] = Math.floor(Math.random() * 256); pixels[i + 3] = 255; } } aa.putImageData(imgdata, 0, 0);
fillRect
for (var y = 0; y < 100; y++) { for (var x = 0; x < 100; x++) { var r = Math.floor(Math.random() * 256); var g = Math.floor(Math.random() * 256); var b = Math.floor(Math.random() * 256); bb.fillStyle = `rgb(${r},${g},${b})`; bb.fillRect(x, y, 1, 1); } }