Testing Data Atribute Selectors (v10)

Revision 10 of this benchmark created on


Description

Test that shows how fast a query can be made via data atributes and how fast it is made via classes.

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<div class="virtual-body">
<div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div>
<div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div></div></div><div class='classdeclaration1 component mycomponent' data-component='mycomponent'></div></div><div class='classdeclaration1 widget component mycomponent' data-component='mycomponent'></div>
</div>

Setup

ui.$virtualBody = $('.virtual-body');
    ui.virtualBody = ui.$virtualBody[0];

Test runner

Ready to run.

Testing in
TestOps/sec
jQuery Class Selector
ui.$virtualBody.find(".mycomponent");
ready
jQuery Data Attribute Selector
ui.$virtualBody.find("[data-component='mycomponent']");
ready
jQuery Data Attribute Selector (no value)
ui.$virtualBody.find("[data-component]");
ready
queryAll by class
ui.virtualBody.querySelectorAll(".mycomponent");
ready
queryAll by data-attr
ui.virtualBody.querySelectorAll("[data-component='mycomponent']");
ready
queryAll by data-attr (no value)
ui.virtualBody.querySelectorAll("[data-component]");
ready
getElementsByClassName
ui.virtualBody.getElementsByClassName("mycomponent");
ready
jQuery wrap getElementsByClassName
$(ui.virtualBody.getElementsByClassName("mycomponent"));
ready

Revisions

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