RightJS vs. YUI3 vs. jQuery vs. Sizzle vs. Peppy vs. Native selector test

JavaScript performance comparison

Revision 24 of this test case created

Info

Native case: * Reference matches after loop because a real function would need to return that. * Resubmiteed; DSL + 2Wire drops packets.

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://yui.yahooapis.com/3.2.0pr1/build/yui/yui-min.js"></script>
<script src="http://github.com/jeresig/sizzle/raw/master/sizzle.js"></script>
<script src="http://jamesdonaghue.com/static/peppy/peppy-min.js"
</script>
<script src="http://rightjs.org/hotlink/right-1.5.6.js"
</script>

<section class="target-me" name="donuts">.target-me</section>
<section class="target-me">.target-me</section>
<section class="target-me" name="candy">.target-me</section>
<script>
  jQuery.noConflict();
  Y = YUI().use('node');
</script>

Preparation code output

.target-me
.target-me
.target-me

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
jQuery('.target-me[name=candy]');
pending…
YUI3
Y.all('.target-me[name=candy]');
pending…
Sizzle
Sizzle('.target-me[name=candy]');
pending…
Peppy
peppy.query('.target-me[name=candy]');
pending…
Native
var elements = document.getElementsByClassName('target-me'),
    i, j, len = elements.length,
    matches = [],
    e;

for (i = j = 0; i < len; ++i) {
 e = elements[i];
 if (e.getAttribute('name') === 'candy') {
  matches[j++] = e;
 }
}
matches;
pending…
Native Query Selector
document.querySelectorAll('.target-me[name=candy]');
pending…
RightJS 1.5.6
$$('.target-me[name=candy]');
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