HTML Preparation code:
Script Preparation code:
Tests:

Historical Performance Data aggregated from 144 community runs

Desktop Results:
Chrome 110 runs
getBoundingClientRect() (simple property access)
1.1M/s
getBoundingClientRect() (destructured)
1.1M/s
offsetWidth / offsetHeight (simple property access)
827K/s
offsetWidth / offsetHeight (destructured and renamed)
768K/s
offsetWidth / offsetHeight (destructured)
767K/s

Fastest: getBoundingClientRect() (simple property access) (1.5x faster)

View exact numbers
  • getBoundingClientRect() (simple property access): 1,138,444 ops/sec
  • getBoundingClientRect() (destructured): 1,106,426 ops/sec
  • offsetWidth / offsetHeight (simple property access): 827,353 ops/sec
  • offsetWidth / offsetHeight (destructured and renamed): 768,440 ops/sec
  • offsetWidth / offsetHeight (destructured): 766,938 ops/sec
Firefox 27 runs
offsetWidth / offsetHeight (simple property access)
6.4M/s
offsetWidth / offsetHeight (destructured)
6.4M/s
offsetWidth / offsetHeight (destructured and renamed)
6.4M/s
getBoundingClientRect() (destructured)
3.0M/s
getBoundingClientRect() (simple property access)
2.9M/s

Fastest: offsetWidth / offsetHeight (simple property access) (2.2x faster)

View exact numbers
  • offsetWidth / offsetHeight (simple property access): 6,430,355 ops/sec
  • offsetWidth / offsetHeight (destructured): 6,425,653 ops/sec
  • offsetWidth / offsetHeight (destructured and renamed): 6,420,216 ops/sec
  • getBoundingClientRect() (destructured): 2,965,858 ops/sec
  • getBoundingClientRect() (simple property access): 2,946,736 ops/sec
Safari 7 runs
offsetWidth / offsetHeight (destructured)
7.1M/s
offsetWidth / offsetHeight (destructured and renamed)
7.0M/s
offsetWidth / offsetHeight (simple property access)
6.0M/s
getBoundingClientRect() (simple property access)
3.7M/s
getBoundingClientRect() (destructured)
3.2M/s

Fastest: offsetWidth / offsetHeight (destructured) (2.2x faster)

View exact numbers
  • offsetWidth / offsetHeight (destructured): 7,104,510 ops/sec
  • offsetWidth / offsetHeight (destructured and renamed): 6,973,682 ops/sec
  • offsetWidth / offsetHeight (simple property access): 6,043,932 ops/sec
  • getBoundingClientRect() (simple property access): 3,667,761 ops/sec
  • getBoundingClientRect() (destructured): 3,220,451 ops/sec

Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.

Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results
  • Test case name Result
    offsetWidth / offsetHeight (destructured and renamed)
    offsetWidth / offsetHeight (destructured)
    offsetWidth / offsetHeight (simple property access)
    getBoundingClientRect() (destructured)
    getBoundingClientRect() (simple property access)

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one month ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:152.0) Gecko/20100101 Firefox/152.0
Firefox 152 on Mac OS X 10.15
View result in a separate tab
offsetWidth / offsetHeight (destructured and renamed)
15.2M/s
offsetWidth / offsetHeight (destructured)
15.2M/s
offsetWidth / offsetHeight (simple property access)
14.9M/s
getBoundingClientRect() (simple property access)
9.1M/s
getBoundingClientRect() (destructured)
9.1M/s
View exact numbers
Test name Executions per second
offsetWidth / offsetHeight (destructured and renamed) 15,179,328 Ops/sec
offsetWidth / offsetHeight (destructured) 15,163,370 Ops/sec
offsetWidth / offsetHeight (simple property access) 14,864,196 Ops/sec
getBoundingClientRect() (simple property access) 9,098,546 Ops/sec
getBoundingClientRect() (destructured) 9,060,147 Ops/sec