Skip to content

Instantly share code, notes, and snippets.

@chrome
Created May 24, 2011 04:20
Show Gist options
  • Save chrome/988133 to your computer and use it in GitHub Desktop.
Save chrome/988133 to your computer and use it in GitHub Desktop.
jquery.role benchmark
$(function(){
var num = 100;
var test_count = 10000;
for(var i = 0; i < num; i++) {
$('body').append('<div class="c'+i+'" id="i'+i+'" role="r'+i+'" data-attr="a'+i+'">'+i+'</div>');
}
var randoms = [];
for(var i = 0; i < test_count; i++) {
randoms.push(Math.round(Math.random() * (num-1)) % (num-1));
}
start = Date.now();
for(var i = 0; i < test_count; i++) {
$('.c'+randoms[i]);
}
var class_result = Date.now() - start;
start = Date.now();
for(var i = 0; i < test_count; i++) {
$('#i'+randoms[i]);
}
var id_result = Date.now() - start;
start = Date.now();
for(var i = 0; i < test_count; i++) {
$('[a='+randoms[i]+']');
}
var attr_result = Date.now() - start;
start = Date.now();
for(var i = 0; i < test_count; i++) {
$('@r'+randoms[i]);
}
var role_result = Date.now() - start;
start = Date.now();
for(var i = 0; i < test_count; i++) {
a = $('#i'+randoms[i]).get()[0].className;
}
var getcn_result = Date.now() - start;
start = Date.now();
for(var i = 0; i < test_count; i++) {
a = $('#i'+randoms[i]).get()[0].getAttribute('role');
}
var getar_result = Date.now() - start;
console.log('Class: ' + class_result);
console.log('ID: ' + id_result);
console.log('Attr: ' + attr_result);
console.log('Role: ' + role_result);
console.log('Get CN: ' + getcn_result);
console.log('Get AR: ' + getar_result);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment