jQuery seleccionar por clase VS seleccionar por atributo

Solo quiero pedir una opinión sobre el rendimiento: ¿es más rápido seleccionar elementos por nombre de clase o por nombre de atributo con jquery? Ejemplo Tengo 100 elementos DIV en esta forma:

...

Cual es mas rápido:

 $('div.normal_box').each(function(){...}); 

VS

 $('div[normal_box=1]').each(function(){...}); 

Hice algunos experimentos en 30 divs pero no veo ninguna diferencia con (new Date) .getTime (); ¿Tal vez la selección por clase es más eficiente en el uso de la CPU?

esta es una gran publicación para exactamente lo que estás buscando.

JQUERY SELECTOR PRUEBA DE RENDIMIENTO

También encontré un excelente artículo que puede ayudarlo en este tema:

  • algunas pruebas de rendimiento de selectores jquery

avísame si esta respuesta realmente te ayudó, gracias.

actualización: He logrado hacer una muestra para que coincida con su caso publicado, aquí están los resultados para un conjunto total de 203 divs:

1- usando el nombre de la etiqueta que tiene el nombre de la clase certine $("div.normal_box") ==> 884 ms

2- usando el valor de atributo $("div[normal_box=1]") ==> 4553 ms

Actualización 2: Intenté incluso más que su pregunta, y lo hice para probar algunos selectores, aquí está el nuevo enlace para esta prueba actualizada: http://jsfiddle.net/8Knxk/4/

3- usando el nombre de etiqueta $("div") ==> 666 ms

4- usando solo el nombre de clase $(".normal_box") ==> 762 ms

Creo que ahora es más claro para ti 🙂

Aquí están los resultados de una prueba que acabo de ejecutar para mí. Este div estaba en un DOM con 1562 elementos.

Pruebas

  function test(iterations) { console.time('query-by-data'); for(var i=iterations;i;i--) { $('[data-banana]'); } console.timeEnd('query-by-data'); console.time('query-by-class'); for(var i=iterations;i;i--) { $('.banana'); } console.timeEnd('query-by-class'); } 

resultados

  iterations: 1000 query-by-data: 120.000ms query-by-class: 10.000ms iterations: 10000 query-by-data: 1030.000ms query-by-class: 56.000ms iterations: 50000 query-by-data: 5151.000ms query-by-class: 235.000ms