YUI vs. jQuery vs Dojo DOM queries

JavaScript performance comparison

Revision 58 of this test case created

Info

Rev.48:

Preparation code

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="http://yui.yahooapis.com/3.14.1/build/yui/yui-min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.9.2/dojo/dojo.js"></script>

<div id="test">
  <div class="testlink">
    <a href="#" id="linkone" title="test">test link</a>
  </div>
  <div class="testmenu">
    <ul>
      <li class="menuitem itemone">
        <a href="#" title="item 1">menu item 1</a>
      </li>
      <li class="menuitem itemtwo">
        <a href="#" title="item 2">menu item 2</a>
      </li>
      <li class="menuitem itemthree">
        not clickable item 3
      </li>
    </ul>
  </div>
</div>
<script>
Benchmark.prototype.setup = function() {
    var selectors = ['body', 'div', 'body div', 'div a', 'div > a', 'div[class^=test]', 'div, li, a', '.menuitem', 'li.menuitem', '#linkone', 'div#test', 'a[title*=item]', 'a[title=test]', 'li:nth-child(even)', 'li:nth-child(odd)', 'li:last-child', 'li:first-child'],
      Y = YUI().use('node');
};
</script>

Preparation code output

Test runner

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

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
jQuery v2.1.0
for (var sel in selectors) {
  $(selectors[sel]).length;
}
pending…
YUI v3.14.1
for (var sel in selectors) {
  Y.all(selectors[sel]).length;
}
pending…
Dojo 1.9.2
require(["dojo/query"], function(query) {
  for (var sel in selectors) {
    query(selectors[sel]).length
  }
});
pending…
querySelectorAll
for (var sel in selectors) {
  document.querySelectorAll(selectors[sel]).length;
};
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. Here’s a list of current revisions for this page:

0 comments

Add a comment