jQuery 1.4 vs 1.8 vs 1.9 vs 2.0b1 (v8)

Revision 8 of this benchmark created on


Description

Ref. http://jsperf.com/jquery-15-unique-traversal

Preparation HTML

<script src="//code.jquery.com/jquery-1.4.4.min.js">
</script>
<script>
  var $14 = jQuery.noConflict();
</script>
<script src="//code.jquery.com/jquery-1.8.2.min.js">
</script>
<script>
  var $18 = jQuery.noConflict();
</script>
<script src="//code.jquery.com/jquery-1.9.0.min.js">
</script>
<script>
  var $19 = jQuery.noConflict();
</script>
<script src="//code.jquery.com/jquery-2.0.0b1.js"></script>
<script>
  var $20 = jQuery.noConflict();
</script>


<input id="val" type="text" value="foo">
<div id="children" style="display:none;">
</div>
<script>
  var i, j, html = "";
  for (j = 0; j < 20; j++) {
    html += "<div class='children'>";
    for (i = 0; i < 5; i++) {
      html += "<div>abc</div><div>012</div>";
    }
    html += "</div>";
  }

  document.getElementById("children").innerHTML = html;
</script>
<div id="id-outer">
  <div id="id-inner">
  </div>
</div>

Setup

var $14val = $14('#val');
    var $18val = $18('#val');
    var $19val = $19('#val');
    var $20val = $20('#val');
    
    var $14children = $14(".children");
    var $18children = $18(".children");
    var $19children = $19(".children");
    var $20children = $20(".children");
    
    var $14outer = $14('#id-outer');
    var $18outer = $18('#id-outer');
    var $19outer = $19('#id-outer');
    var $20outer = $20('#id-outer');

Test runner

Ready to run.

Testing in
TestOps/sec
1.4 .val()
$14val.val();
ready
1.8 .val()
$18val.val();
ready
1.4 .children()
$14children.children();
ready
1.8 .children()
$18children.children();
ready
1.4 .find("#child")
$14outer.find('#id-inner');
ready
1.8 .find("#child")
$18outer.find('#id-inner');
ready
1.4 $("#id")
$14('#id-inner');
ready
1.8 $("#id")
$18('#id-inner');
ready
1.9 .children()
$19children.children();
ready
1.9 .find("#child")
$19outer.find('#id-inner');
ready
1.9 $("#id")
$19('#id-inner');
ready
1.9 .val()
$19val.val();
ready
2.0b1 .val()
$20val.val();
ready
2.0b1 .children()
$20children.children();
ready
2.0b1 .find("#child")
$20outer.find('#id-inner');
ready
2.0b1 $("#id")
$20('#id-inner');
ready

Revisions

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