CPANモジュールの速度改善(作業メモ)

たまっていたパッチをいくつかRTに送りつけたのでメモしておく。

  • Class::Method::Modifiers
    • Data::Utilを使うようにした
    • 採用されれば,beforeとafterが劇的に高速になる
  • Class::MOPのMethod::Wrapped (method modifiers)
    • Data::Utilを使うようにした
    • 採用されれば,beforeとafterが劇的に高速になる
  • Text::CSV_XS
    • PERL_NO_GET_CONTEXTを有効にした
    • call_method() -> call_sv() with G_METHOD
    • 思ったほど速度は変わらなかった
  • Spreadsheet::ParseExcel
    • lvalue substr()が異様に遅いので4引数のsubstr()に置換
    • Spreadsheet::ParseExcel::Utility::ExcelFmtがとんでもないボトルネックなのでこれだけでもXSで書けば…

兼ねてより予定していたメソッド修飾子のパッチを書いたと思ったら中身が同じClass::Method::Modifers::Fastが昨日アップロードされていた。作業が遅くてサーセンwww

Spreadsheet::ParseExcelがいつの間にかExcel 2003を読み込めるようになっていた。しかし,S::P::FmtJapanがJcodeベースだったり,内部エンコーディングEUC-JPだったりする。これはEncodeベースに書き直してもいいはずだ。うまく使えばWin32::OLEを呼び出すよりもずっと速いのでもう少し何とかしてほしい。あとテストが少なすぎるのでモジュールの信頼性はきわめて低いのもなんとかしてほしい。