Island Babies

いろんなことを書きます

Rust の プロファイラ

概要

やっぱりpython はどこまでいっても速さを追求できるものではなくて, Cython などいろいろ使ってみても慣れていないとなかなか難しいところがあります. 処理が早い言語を書く必要に迫られたので, Rust を勉強していろいろとプログラムを書いてみています. その中で使ったものを紹介します. 軽くになってはしまいますが...

cargo-profiler

keens.github.io まずこちらを試したみました. cargo install してすぐ使えるお手軽さが魅力かと思います. しかし、これはかなり細かい部分の処理が出てくるので、パッと使うには少し難しいような気がしています. 慣れればなんでもないのかもしれないですが.

perf

次が perf です. これはおそらくLinux のパッケージだと思います. qiita.com これもかなり低レイヤーの話をみている気がしていて, パッと使うには難しいかなと思います.

flame

結局, 使ったのは flame という crate でした. https://github.com/llogiq/flameがレポジトリになりますが, かなり使いやすいです. イメージ的には, 測定したい部分にflame::hogehoge って感じで挿入してあげるとその部分の時間を測定するって感じです. さらに, 出力されるhtmlが入れ子になっていて関数のどの部分が関数のうち何%を占めているかが視覚的にわかりやすくなっています.