Uint8Array vs DataView (v10)

Revision 10 of this benchmark created on


Preparation HTML

<script>
  var len = 1024;
  var a = new ArrayBuffer(len * 4);
  var dv = new DataView(a);
  var u8 = new Uint8Array(a);
  var ii;
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
DataView write
for (ii = 0; ii < len; ii += 4) {
  dv.setUint32(ii, ii);
}
ready
Uint8 write
for (ii = 0; ii < len; ii += 4) {
  u8[ii] = ii & 0xff;
  u8[ii + 1] = (ii >> 8) & 0xff;
  u8[ii + 2] = (ii >> 16) & 0xff;
  u8[ii + 3] = (ii >> 24) & 0xff;
}
ready
DataView read
var sum = 0;
for (ii = 0; ii < len; ii += 4) {
  sum += dv.getUint32(ii);
}
ready
Uint8 read
var sum = 0;
for (ii = 0; ii < len; ii += 4) {
  var val32 = u8[ii];
  val32 |= u8[ii + 1] << 8;
  val32 |= u8[ii + 2] << 16;
  val32 |= u8[ii + 3] << 24;
  sum += val32;
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.