タグ

ブックマーク / gfx.doorblog.jp (2)

  • たとえば、Cwd::cwd()ではなくCwd::getcwd()を使う - Islands in the byte stream

    2010年11月09日 たとえば、Cwd::cwd()ではなくCwd::getcwd()を使う Module::InstallベースのMakefile.PLが異様に遅いのでDevel::NYTProfでプロファイルを取ったところ、Cwd::cwd()が非常に遅いことがわかった。そこでこれをCwd::getcwd()に置き換えたところ、明らかにMakefile.PLの実行が高速になりキビキビと動くようになった。 調べてみるとこのcwd()、なんと内部で`pwd`を行っているのだ!そしてModule::Installはcwd()を大量に呼んでおり、これだけで秒単位の時間を消費していたのだった。 cwd()が`pwd`と同じだということは、Cwd.pmのpodにも書いてある。 $ perldoc Cwd ... getcwd my $cwd = getcwd(); Returns the cur

    TMTL
    TMTL 2010/11/09
  • Smart::Argsが賢すぎる件 - Islands in the byte stream

    2010年11月08日 Smart::Argsが賢すぎる件 Smart::Argsを強化した(v0.04, v0.05)。以下の様にtype constraintオブジェクトを直接指定できるようになった。また、auto coercionもサポートしたので、validationに失敗すると変換を試みる。 実行例: まず$uriはUri型制約をかけてあるので、来であれば文字列は受け付けない。しかし、MX::Types::URIで定義されたcoercionにより、文字列からURIオブジェクトを生成している。 二番目の引数はカスタムtype constraintを渡す例になっている。この場合は指定した文字列以外は禁止してる。また、デフォルト値も指定している。 組み込みのtype constraintは高速なMouseのものを使うが、type constrainオブジェクトはMooseのでもかまわ

    TMTL
    TMTL 2010/11/09
  • 1