2017年12月13日水曜日

{profvis}パッケージでいい感じにパフォ厨しよう!

本エントリはRStudio Advent Calendar 2017 13日目の記事です

今年も盛況だったJapan.R 2017。
スペシャルゲストは高柳EVPの私費により招聘されたKunRenさんでしたね。
通称パンダ本が発売されたこともあり、みな聞き入っていました。

当日の発表資料はgithubに公開されています。

さて、この発表ではRの処理速度をいかにしてあげていくかということを
されていましたが、その際に計測されているものが気になる!
ということで、このエントリをしたためようと思いました。

↑これです。
どうやら、これは{profvis}パッケージを使ったものであるとわかりました。
CRANにも登録されているので、install.packages("profvis")で使えます。

開発者のGithubにある例を元にやってみます。
ggplot2に格納されている'diamonds'のデータセットに対して回帰分析を実施し、
その結果をggplot2によって可視化するという処理のプロセスを可視化するケースです。
下記のように処理をprofvis関数でくくってあげましょう。


すると、ブラウザが立ち上がりHTML Widgetでこの処理における時間を可視化してくれます。
タブメニューで2つのモードがあり、デフォルトではFlame Graphというメニューになっており、各コードの行に対応して処理時間が可視化されているのが上側。
下側ではもう少し詳細なレイヤーでのパフォーマンスを見ることができます。マウスオーバーすると処理時間やメモリの使用量などが下記のように見られます。

 Dataタブを開くと、lmやplotなどの処理から、各Rの処理へとブレイクダウンでき、どのポイントがボトルネックとなっているかを探すことができるようになってます。
今まで私はあまり重たい処理をRでやってこなかったこともあって、こういうパフォーマンス計測などは考えていませんでした。しいて言えばSystem関数での処理時間を比較するなど程度でした。
今回の{profvis}を使えば簡単に実行時間のボトルネックを探すことができるので、何かの折には使っていこうと思います。
皆様もこれで良いRstudio LIFEを!

Enjoy!!

0 件のコメント:

ページビューの合計