native vs typed js array speed

JavaScript performance comparison

Revision 85 of this test case created by man

Preparation code

<script>
  var arraySize = 2000;
  var nativeArray = new Array(arraySize);
  var int8Array = new Int8Array(arraySize);
  var int16Array = new Int16Array(arraySize);
  var int32Array = new Int32Array(arraySize);
  var float32Array = new Float32Array(arraySize);
  var float64Array = new Float64Array(arraySize);

</script>
      
<script>
Benchmark.prototype.setup = function() {
  var sum = 0;
  

};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
Native Write
for (var i = 0; i < arraySize; ++i) {
  nativeArray[i] = i;
}
pending…
Int32 Write
for (var i = 0; i < arraySize; ++i) {
  int32Array[i] = i;
}
pending…
Float32 Write
for (var i = 0; i < arraySize; ++i) {
  float32Array[i] = i;
}
pending…
Native Read
for (var i = 0; i < arraySize; ++i) {
  sum += nativeArray[i];
}
pending…
Int32 Read
for (var i = 0; i < arraySize; ++i) {
  sum += int32Array[i];
}
pending…
Float32 Read
for (var i = 0; i < arraySize; ++i) {
  sum += float32Array[i];
}
pending…
Int16 Write
for (var i = 0; i < arraySize; ++i) {
  int16Array[i] = i;
}
pending…
Int16 Read
for (var i = 0; i < arraySize; ++i) {
  sum += int16Array[i];
}
pending…
Int8 Write
for (var i = 0; i < arraySize; ++i) {
  int8Array[i] = i;
}
pending…
Int8 Read
for (var i = 0; i < arraySize; ++i) {
  sum += int8Array[i];
}
pending…
Alternative Native Write
for (var i = 0; i < arraySize; ++i) {
  nativeArray[i] = i;
}
pending…
Float64 Read
for (var i = 0; i < arraySize; ++i) {
  sum += float64Array[i];
}
pending…
Float64 Write
for (var i = 0; i < arraySize; ++i) {
  float64Array[i] = sum;
}
pending…

Compare results of other browsers

Revisions

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

0 Comments