Read/Write Typed Arrays (v6)

Revision 6 of this benchmark created on


Description

Test reading and writing to all kinds of typed arrays, and of course classic arrays too.

Preparation HTML

<script type="text/javascript" notsrc="https://raw.github.com/mozilla/pdf.js/master/web/compatibility.js" src="https://bitbucket.org/lindenlab/llsd/raw/7d2646cd3f9b4c806e73aebc4b32bd81e4047fdc/js/typedarray.js"></script>
<script type="text/javascript">
  var size = 640 * 480;
  
  var arr = new Array( size );
  //for (var idx = 0; idx < size; idx++) arr[idx] = Math.floor( Math.random() * 256 );

  var ui32 = new Uint32Array( size );
  //for (var idx = 0; idx < size; idx++) ui32[idx] = Math.floor( Math.random() * 256 * 256 * 256 * 256 );
  
  var ui16 = new Uint16Array( size );
  //for (var idx = 0; idx < size; idx++) ui16[idx] = Math.floor( Math.random() * 256 * 256 );
  
  var ui8 = new Uint8Array( size );
  //for (var idx = 0; idx < size; idx++) ui8[idx] = Math.floor( Math.random() * 256 );
  
  var i32 = new Int32Array( size );
  //for (var idx = 0; idx < size; idx++) i32[idx] = Math.floor( Math.random() * 256 * 256 * 256 * 256 );
  
  var i16 = new Int16Array( size );
  //for (var idx = 0; idx < size; idx++) i16[idx] = Math.floor( Math.random() * 256 * 256 );
  
  var i8 = new Int8Array( size );
  //for (var idx = 0; idx < size; idx++) i8[idx] = Math.floor( Math.random() * 256 );
  
  var f32 = new Float32Array( size );
  //for (var idx = 0; idx < size; idx++) f32[idx] = Math.random();
  
  // var f64 = new Float64Array( size );
  // for (var idx = 0; idx < size; idx++) f64[idx] = Math.random();
  
</script>

Setup

var vui32 = Math.floor( Math.random() * 256 * 256 * 256 * 256 );
    var vui16 = Math.floor( Math.random() * 256 * 256 );
    var vui8 = Math.floor( Math.random() * 256 );
    var vi32 = Math.floor( Math.random() * 256 * 256 * 256 * 256 );
    var vi16 = Math.floor( Math.random() * 256 * 256 );
    var vi8 = Math.floor( Math.random() * 256 );
    var vf32 = Math.random();
    var varr = Math.floor( Math.random() * 256 );

Test runner

Ready to run.

Testing in
TestOps/sec
Uint32Array
for (var idx = 1; idx < size; idx++) ui32[idx] = vui32;
 
ready
Uint16Array
for (var idx = 1; idx < size; idx++) ui16[idx] = vui16;
ready
Uint8Array
for (var idx = 1; idx < size; idx++) ui8[idx] = vui8;
ready
Int32Array
for (var idx = 1; idx < size; idx++) i32[idx] = vi32;
ready
Int16Array
for (var idx = 1; idx < size; idx++) i16[idx] = vi16;
 
ready
Int8Array
for (var idx = 1; idx < size; idx++) i8[idx] = vi8;
ready
Float32Array
for (var idx = 1; idx < size; idx++) f32[idx] = vf32;
 
ready
Uint32Array (REPEAT)
for (var idx = 1; idx < size; idx++) ui32[idx] = vui32;
 
ready
Array
for (var idx = 1; idx < size; idx++) arr[idx] = varr;
 
ready

Revisions

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

  • Revision 2: published by Joseph Huckaby on
  • Revision 6: published on