[Erlang][Elixir]erlyberlyでErlang/Elixirのdebugをサポート

Erlang/Elixirのdebugを楽にするツールを知ったのでメモ。

実行のワンライナーは以下。

$ git clone git@github.com:andytill/erlyberly.git && cd erlyberly && ./mvnw clean compile install assembly:single && java -jar target/*runnable.jar

これが全て終わって、JavaのGUIが表示されたら、例えば以下のようにnodeを指定してアプリを起動します。

$ iex --name "foo@127.0.0.1" -S mix phoenix.server

起動後、Javaで表示されているtarget nodeに “foo@127.0.0.1” を指定。

すると、メモリ使用量とか、諸々を確認することができる以下のような画面を確認できるようになります。

以下は、この簡単なPhoenixアプリケーションに対して実行した時。

Screen Shot 2016-04-16 at 23.48.49

以下は、http_proxyに対して。

Screen Shot 2016-04-16 at 23.59.23

いずれも、BEAM VMのprocessやatomなどのメモリ使用量が計測できてとても良いですね。atomがGCされないので、これが過度に大きいとメモリ圧迫している、とか簡単にわかりますし。あとはfunctionsの名前空間の形もパッと見ることができますね。

https://github.com/andytill/erlyberly#get-the-process-state

にあるように、processの状態を抜くこともできるようです。

ある程度はObserverでも見ることができますが、メモリ使用量をこんな感じでグラフにしてくれるのは解りやすい。Java製。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s