タグ

ブックマーク / iandeth.dyndns.org (6)

  • XML::Simple は遅い説における意外な落とし穴 (iandeth.)

    「XML::Simpleは処理速度が遅い」説といえばNDO::Weblogさんの記事 Perl で XML の処理はどれが速いかベンチ がすぐに思い浮かびます。初見した時はずいぶん感心した覚えがあり、以来、業務で XML::Simple を使う事に多少なりとも躊躇するようになったものです。そんな中、現在仕事で XML parsing with Perl な案件を受け、CPANにUPされている様々な XML 解析系モジュールの処理速度を計測しているのですが、その際気付いた、XML::Simple の意外な落とし穴についてまとめてみました。 目次: まとめ デフォルトで呼ばれるXML::SAXパーサーの確認方法 ベンチマーク比較 関連情報 まとめ だらだら説明するのもナンなので、いきなり結論から。XML::Simple は、デフォルトの状態だと XML::SAX がインストールされている場合、

  • iandeth. - XML::Simple は遅い説における意外な落とし穴 - おまけ編

    iandeth. Perl, Flash ActionScript, MySQL, Movable Type, システム開発 - そんなテーマのサイトdeth. 目次: 背後で利用している XML::SAXパーサーの確実な確認方法 $/ 変数の状態によって利用パーサーが変わる妙について 背後で利用している XML::SAXパーサーの確実な確認方法 基的な確認方法は前回記事にて記述しましたが、より確実に、コード実行時に利用しているパーサーが何なのかを確かめたい場合は、ちと泥臭いですが、以下のように XML::Simple のソースコードに直接追記する事で確認できます。 XML::Simple (Simple.pm) の build_tree 関数の以下の箇所(v2.14ならば281-283行目)に $XML::SAX::ParserPackage = $preferred_parser i

  • iandeth. - Benchmark モジュールの使い方、結果情報の読み方

    仕事で Benchmark モジュールを使う機会があったので、使い方&結果情報の読み取り方をまとめてみました。基的には perldoc 読めばオールオッケーでしょ?と思っていたのですが、docs では結果情報の読み方についてはあんまり触れられていなかった為、ガッツリ補足してみました。 基 とある2種類のコードの実行速度を比較計測するには以下のようなソースを記述します: bench.pl #!/usr/bin/perl use strict; use warnings; use Benchmark qw(timethese cmpthese); sub hogeLoop1 { my $str; for my $i (1 .. 10000){ $str .= $i } } sub hogeLoop2 { my $str; for my $i (1 .. 20000){ $str .= $i

  • いつでもどこでも、すぐに DateTime モジュールを使いたい - iandeth.

    前回のエントリ 「Perlで日付・時間操作 - DateTime モジュールの使い方」で書いたとおり、とっても便利なDateTimeモジュールですが、強いて難点をあげるとすれば、必要な依存モジュールが多いこと = インストールが面倒くさい事かと個人的には思います。shell と make コマンドが使える環境ならば、"$ perl -MCPAN -e 'install DateTime' " で自動インストールしちゃえるのですが、これができない状況: telnet 禁止の環境で cgi 作りたい場合 (無料ホームページサービス等)(顧客のサーバ環境での開発で、クライアントに信用されていない状況とか) サーバの保守・セキュリティ体制がうんちゃらで make コマンドの利用が規制されている場合 (出くわした経験あり) こんな状況下だと、とたんにDateTimeモジュールを利用する事は難しくなっ

  • Perlで日付・時間を操作 - DateTime モジュールの使い方 (iandeth.)

    Perlには、日時の加・減算を扱うモジュールが標準でついてきません。僕の仕事場ではずっと、同僚が作ったオリジナルモジュールを皆で使いまわしていたのですが、今になって、世間的 (CPAN) にはどんなものがあるのか気になって調べてみました。※参考になったのは miyagawa 氏のメールマガジンの過去記事と、perl.com の The Many Dates and Times of Perl なるエントリでした。 今回は数ある日付関連モジュールの中から、Dave Rolsky氏の DateTime モジュールについて、その基的な使い方について簡単にまとめたので共有してみます。 同氏は上記 perl.com 記事の執筆者であり、この前の YAPC::Asia で DateTime project について講演してくれていた人です。気合の入ったモジュールを作ってくれた事に感謝。 目次 基

  • 一般ユーザ環境におけるCPANモジュールの使い方 - iandeth.

    先週公開した、じゃらんWebサービスを使ったサンプルサイト「シンプル宿検索」にて、perlのソースコードも一緒に公開してみたのですが、さっそく興味を持ってくれた方から問い合わせを頂きました。 cgiを実行させようとしたら以下のエラーが出てしまいました: Can't locate Template.pm in @INC (中略) at search.cgi line 5 ... Template.pm モジュールがインストールされてないよ!って怒られています。あー、コード公開する際は必要なCPANモジュールも一緒に添付しといてあげたほうが親切なのかな?いやでもそれ面倒くさいし無理あるなあ・・・。 Webでキーワード "CPAN" を検索すると出てくるCPANの使い方系ページの多くは、そのサーバの root 権限を持っている前提で、サーバの共通ライブラリ下にCPANモジュールを追加する方法を紹

  • 1