XS利用でPerl高速化 その2

前回は、XSモジュールを使うと処理が高速になる可能性があるという紹介をしました。


ただしXSモジュールの導入にはデメリットもあります。
C言語で実装しているという関係上、

  • モジュール変更のたびにリコンパイルが必要である
  • メモリリークの危険性がある
    • Perlの管理下にないメモリは自分で解放しなければなりません(詳細は後日)
  • プラットフォーム間での互換性が保てない
  • PerlのXSバージョンに左右される場合がある
  • Perl単体のときと比べてデバッグが難しい


などなど、クリアすべき点があります。


というわけで使いどころとしては、

  • Perlのコードで速度的にボトルネックになっている部分があり
  • そのコードの仕様はほぼfixしている(変更が入る可能性は少ない)


というような場合に、XSで処理を書いてみて、ベンチマークをとってみるという形が良いと思います。


なおXSについての情報は書籍であれば


実用Perlプログラミング

実用Perlプログラミング


の18章あたりを参考にすると良いでしょう。


なおXSの詳細を学べば、Cではなくてアセンブラでもコードを書けると思うのですが、それは悪ノリしすぎということで・・・