gprof
思い付きでプロファイルをとってみた。OCamlMakefileを使っているので、
$ make pnc $ ./truby ../example/pass-inheritance.rb $ gprof truby
とすればOK。
ではなかった。gprofって、プロファイルを採りたいプログラムに引数渡せないのかな…まあしかたがないので、プログラム自体に引数を埋め込んで実行。そうすると、今度はgmon.outが無いとか言ってきやがる。むむ、Macだと動かないのね(ocamloptが)。
試行錯誤の末、どうにかプロファイルが採れたらしい。そこには、驚愕の結果が。
gprofの使い方を全然わかってなかったorz。Macだとocamloptが使えないのは本当のような気がするが。
プリティプリンティングは遅い。
いやまあ、あたりまえなんですが、自由変数を求めてる部分とか単一化とかが遅いのかと思ってました。実装がnaiveなので。しかし、これは…デバッグプリントを考えないといかんかも。