jQuery vs JavaScript Performance Comparison

JavaScript performance comparison

Revision 75 of this test case created by

Preparation code

<div id="hello"></div>
<div class="bye"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

      
<script>
Benchmark.prototype.setup = function() {
  var allEls = document.getElementsByTagName("*"),
    i,
    idHash = { 'tag' : [], 'class' : [], 'id' : [] };
  
  for( i in allEls ){
    var thisEl = allEls[i],
        classes = (thisEl.className) ? thisEl.className.split(' ') : [];
  
    idHash.tag[thisEl.tagName] = idHash.tag[thisEl.tagName] || [];    
    idHash.tag[thisEl.tagName].push( thisEl );
    
    for( j in classes ){
      var classStr = classes[j];
      
      idHash.class[classStr] = idHash.class[classStr] || [];
      idHash.class[classStr].push( thisEl );
    }
  
    idHash.id[thisEl.id] = thisEl;
  }

};
</script>

Preparation code output

<div id="hello"></div> <div class="bye"></div>

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
Class Selection: Frontload Class assignments, cache, then read from cache
var el = idHash.class['bye'];
pending…
ID Selection: Frontload ID assignments, cache, then read from cache
var el = idHash.id['hello'];
pending…
get element by id to Jquery
var el = document.getElementById('hello'), // DOM element
   $el = $(el);                            // jQuery object
pending…
JavaScript Class Selector
var el = document.querySelector('.bye'); // DOM elements
pending…
get element by id
var el = document.getElementById('hello'); // DOM element
pending…
JavaScript ID Selector
var el = document.querySelector('#hello'); // DOM element
pending…
jQuery Class Selector
var $el = $('.bye'); // jQuery object
pending…
jQuery ID Selector
var $el = $('#hello'); // jQuery object
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