Perlでの設計方針

Perlでアプリケーションを開発する際に注意すること。

Perlでオブジェクト指向で設計することを前提とする。

で、はてなのnaoyaさんの記事『Perl OO におけるオーバーヘッド』を参考。
凄く勉強になる。

恥ずかしながら、オーバーヘッドだとか処理速度関係を気にしてアプリケーションの設計をした経験がない。
正直、「設計」と呼べるほどの経験もない。
「それなり」なレベルでコーディングには注意してきたつもり。
あくまで、「それなり」で「つもり」。

naoyaさんの記事を読んで、Perlで実装したウェブアプリケーションの起動時のプロセスみたいなものが理解できた。
「ぼんやり」から「わりとはっきり」くらいだけど(理解度)。
なるほど、Apache起動時にまとめてモジュールをロードするのが吉なわけだ。
mod_perlは「永続的」にコンパイル済みコードをメモリ上に残してくれるということは意識していなかった。
別アプリケーションで共通のモジュール(ライブラリ)を利用していた場合、相当効果がある訳だ。
なるほど、速度面から考えても処理分割して可能な限り共有化をはかることは有効なのか。
どうにも、「お仕事」として必要な部分がすっぽりと抜け落ちている。
恥ずかしい限り。

Perlの場合、オブジェクト指向と非オブジェクト指向とで、処理速度が20~50%違うらしい。
オブジェクト指向の方が遅くなるということらしいけど、余程のシビアな要求がない限り気にする必要はない気がする。
ウェブアプリケーションの場合、割と後から機能追加で色々なサービスを提供していく形が多いと思う。
そういう場合、(きちんと設計された)オブジェクト指向で実装しておくと素早く新機能が提供できるかなと。

XS実装もCとかを利用するくらいの認識しかなくて、PerlでできないことをXSでできる様にするのかなとか思ってた。
処理速度を突き詰める場合、さけて通れなくなってくるのかな。
ひげぽん OSとか作っちゃうかMona- - [Perl] XS利用でPerl高速化』を見て勉強してみよう。

ただ単に、「ある処理を実装する」というくらいなら何とかなる。
利用者のストレスレスとか開発者の生産性とかになるとお手上げ。
開発手法と一緒に、内部レベルでの実装方法を覚えていかないとそのうち干されるかな。

プロフィール

このブログ記事について

このページは、koshigoeが2005年7月10日 10:44に書いたブログ記事です。

ひとつ前のブログ記事は「DokuWikiで情報管理」です。

次のブログ記事は「WebServerXKit」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。