sironekotoroの日記

Perl で楽をしたい

Perl Beginners #11

magnolia: Perl-Beginnersに参加したら、音速でCPAN Authorになった話

  • 人からのフィードバックがspeedupにつながる
  • レベル高杉ぃ

beginners Session

  • テスト文化を現場に定着させるには?
    • Test::More
    • 既存の手元にあるチェックプログラムをテストモジュールに落とし込んでいく
    • WWW::Mechを使うのも一時期はやったが難しい。Selenium使うのも難しい
    • サブルーチンを小さくして、その範囲でテストする
    • mojo::test
    • Plack::Test
    • Web::Query

休み時間

  • 既存パッケージの改造・改良
    • Acme::Kenshiro
    • パッケージを別名でコピーして改造
    • 委譲していじる
  • mishima.pm
    • うなぎおいしそう

i47_rozary: スピードアップの前に分析必要よね。

  • Devel::Size
    • メモリ分析
  • Devel::NYTProf
  • Devel::KYTProf
  • 重いところから改善していこう

ytnobody: スピードアップ・チューニング

  • Benchmark.pm

    • use Benchmark
    • 10万〜100万回を目安に
    • どれくらい早くなったのかが分かる
  • if else より三項演算子

    • ?真のとき:真でないとき
  • 省ける処理が無いか?

  • dbx::SQLiteでメモリ上にDBを作る

    • テスト上でダミーデータでDBつくる
  • チューニングの為にもベンチマークをとって効果を確認

xtetsuji: プロセスの永続化でコスト削減

  • CGIは重い − 毎回、読み込みやモジュールのロードを行う
  • 解決策としてmod_perlとかがあったが今風ではない
  • パフォーマンスに問題なければmod_perlとかでも良い
    • Apache,ngineXを表において、裏でPlackベースとか
  • プロセス起動をLinuxではforkする
    • fork:分岐
  • メールサーバ
    • Postfixが枯れてておすすめ
    • しかし、都度起動
    • qpsmtpdの用に永続プロセスのメールサーバもある