XML::LibXML::XPathExpression

| コメント(0) | トラックバック(0)
XML::LibXML 1.67から、使用頻度の高いXPathを適用するさいに前もってコンパイルできる方法が追加された(1.67は使えないので、1.68)。それがXML::LibXML::XPathExpression。同じXPathをコンパイルした場合、しなかった場合、それぞれの比較のベンチマーク結果は以下の通り:
Rate compiled regular compiled 27322/s -- -11% regular 30675/s 12% --
約一割か・・・微妙・・・。コードは以下の通り:
use strict; use Benchmark qw(cmpthese); use XML::LibXML 1.68; my $xml = XML::LibXML->new->parse_string(<<EOXML <foo> <bar>1</bar> <bar>2</bar> </foo> EOXML my $xpath = '/foo/bar'; my $compiled_xpath = XML::LibXML::XPathExpression->new($xpath); cmpthese(100_000, { compiled => sub { $xml->findnodes($xpath); }, regular => sub { $xml->findnodes($compiled_xpath); } });

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ