HTML Preparation code:
AخA
 
1
<canvas id="c" width="800" height="1"></canvas>
Script Preparation code:
x
 
$N = 800;
$c = document.getElementById('c');
$ctx = c.getContext('2d');
$ctx.clearRect(0, 0, $N, 1);
$pxls = [];
for (let i = 0; i < $N; ++i) {
    $pxls.push({
        r: Math.random() * 255 << 0,
        g: Math.random() * 255 << 0,
        b: Math.random() * 255 << 0
    });
}
Tests:
  • FillRect

     
    for (let i = 0; i < $N; i++) {
      let px = $pxls[i];
      $ctx.fillStyle = 'rgb(' + px.r + ',' + px.g + ',' + px.b + ')';
      $ctx.fillRect(i, 0, 1, 1);
    }
  • PutImageData

     
    const imageData = $ctx.createImageData($N, 1);
    const data = imageData.data;
    for (let i = 0; i < $N; i++) {
      let px = $pxls[i];
      data[i * $N * 4 + 0] = px.r;
      data[i * $N * 4 + 1] = px.g;
      data[i * $N * 4 + 2] = px.b;
      data[i * $N * 4 + 3] = 255;
    }
    $ctx.putImageData(imageData, 0, 0);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    FillRect
    PutImageData

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
Chrome 119 on Linux
View result in a separate tab
Test name Executions per second
FillRect 1105.9 Ops/sec
PutImageData 2918.4 Ops/sec