Loop Invariant Code Motion

JavaScript performance comparison

Test case created by

Preparation code

<script>
  var N = 1000;
  var a = [];
  for (var i = 0; i < N; ++i) {
    a[i] = Math.round(Math.random() * N);
  }
  var options = {tax : .2};
</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
normal
(function() {
  total = 0;
  for (var i = 0; i < N; ++i) {
    total += a[i] * (1 + options.tax);
  }
})()
pending…
hoisted
(function() {
  total = 0;
  var f = 1 + options.tax;
  for (var i = 0; i < N; ++i) {
    total += a[i] * f;
  }
})()
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