HTML Preparation code:
AخA
 
1
<div id="test"></div>
Script Preparation code:
 
el = document.getElementById("test");
Tests:
  • style.setProperty

    x
     
    let i = 0;
    while (i < 10000) {
      el.style.setProperty("color","red");
      el.style.setProperty("border","1vmin solid red");
      el.style.setProperty("padding","0.5vmin");
      el.style.setProperty("background-color","black");
      el.style.setProperty("height","1vh");
      el.style.setProperty("width","1vw");
      i++;
    }
  • style.cssText

     
    let i = 0;
    while (i < 10000) {
      el.style.cssText = "color:red;border:1vmin solid red;padding:0.5vmin;background-color:black;height:1vh;width:1vw;";
      i++;
    }
  • style

     
    let i = 0;
    while (i < 10000) {
      el.style = "color:red;border:1vmin solid red;padding:0.5vmin;background-color:black;height:1vh;width:1vw;";
      i++;
    }
  • Object.assign

     
    let style = {
      height: '1vh',
      width: '1vw',
      color: 'red',
      border: '1vmin solid red',
      backgroundColor: 'black',
      padding: '0.5vmin'
    };
    let i = 0;
    while (i < 10000) {
      Object.assign(el.style, style);
      i++;
    }
  • setAttribute

     
    let i = 0;
    const obj = {
        color: 'red',
        border: '1vmin solid red',
        padding: '0.5vmin',
        'background-color': 'black',
        height: '1vh',
        width: '1vw'
    }
    const forgeStyleString = () => {
        return Object.keys(obj).reduce((p, key) => {
            return p + `${key}: ${obj[key]}; `
        }, '')
    }
    while (i < 10000) {
      el.setAttribute('style',forgeStyleString());
      i++;
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    style.setProperty
    style.cssText
    style
    Object.assign
    setAttribute

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 10 days ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Chrome 134 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
style.setProperty 107.1 Ops/sec
style.cssText 114.7 Ops/sec
style 104.0 Ops/sec
Object.assign 108.1 Ops/sec
setAttribute 365.8 Ops/sec