Hatena::Groupos0x

FFFF RSSフィード

0xFFのメモです。

2008 April 8th Tuesday

jottit.comのLDRize用XPath

| 13:00 | jottit.comのLDRize用XPath - FFFF を含むブックマーク はてなブックマーク - jottit.comのLDRize用XPath - FFFF

jottit.com を ldrize 化した!!! - twwpの件。

元のXPathで動作は問題ないけど、折角なので少し簡潔にしつつパフォーマンスもアップさせてみた。

//http://constellation.jottit.com/siteinfoで実行
var s;
console.time('ori');
for (var i = 0;i<1000;i++){
    s = $x('id("content")//h1 | id("content")//h2 | id("content")//h3 | id("content")//h4 | id("content")//h5 | id("content")//h6');
}
console.timeEnd('ori');//ori: 4391ms
console.time('my');
for (var i = 0;i<1000;i++){
    s = $x('id("content")/descendant::*[self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6]');
}
console.timeEnd('my');//my: 1437ms

2つ目のほうが高速な理由は、「100を取得して2に絞り込む処理」を10回やるより、「100を取得して20に絞り込む処理」を1回だけ行ったほうが効率的だから。

場合によるけど、|は非効率になりがちなので注意。

taizoootaizooo2008/04/08 13:11os0xセンセー descendant::*[self::h1 or self::h2]ってはじめてみましたー。まだまだ修行が足りないです。がんばります。