あなたはすでにjsperfであなた自身の質問に答えていると思います。特定の操作で速度が非常に重要であり、このテストが必要なものの有効な尺度である場合は、独自のテストを実行しgetElementsByClassName
、利用可能な場合はjsperfで400倍高速であるため使用します。
jQuery呼び出しには、ステップスルーした場合に確認できる妥当な量のセットアップオーバーヘッドがあります。小さなドキュメントでは、このセットアップオーバーヘッドが、はるかに大きなDOMを持つドキュメントではあまり見られない方法でjsperfの結果を歪める可能性があることを想像できます。したがって、はるかに大きなDOMで結果を検証することをお勧めします。これは、これを呼び出すドキュメントのより一般的なものである可能性があります。
このドキュメントによると、jQueryはgetElementsByClassName
単純なクラスセレクターに使用する必要があります。
編集: jQueryでこの関数呼び出しをステップ実行しました$('.select')
。内部でgetElementsByClassNameを使用していますが、jQueryの信じられないほどの一般的な性質のために、そこに到達する前に多くのオーバーヘッドがあります(複雑な正規表現の実行も含む)(必要なものが何であるかを理解する前に多くのことをテストする必要があります)単純なクラス名セレクター)。
jsPerfに大きなDOMを追加すると、jQueryのセットアップのオーバーヘッドが全体の実行時間のかなり小さい部分になるため、パフォーマンスのギャップが狭くなる可能性があると思いましたが、あまり変化は見られませんでした。getElementsByClassName('.selector')
呼び出されたすべて自体は、よりもはるかに高速ですjQuery('.selector')
。