Tezosノードのプロファイリング
Tezosノードのプロファイリング
OCamlヒープのメモリプロファイリング / sub>
- statmemprofパッチでOCamlスイッチをインストールする:
4.04.2 + statistical-memprof
または 4.06.0 + statistical-memprof
-
statmemprof-emacs
をインストールします。 - ノードにstatmemprofをロードできるようにする。
メインパッケージへの依存として statmemprof-emacs
パッケージを追加し、 node_main.mlに<code> let()= Statmemprof_emacs.start 1E-4 30 5
を追加します。 </code>ファイルです。
引数:
-
sampling_rate
はプロファイラのサンプリングレートです。適切な値:1e-4
-
callstack_size
は、サンプリングされた各割り当てごとに取得されるコールスタックのフラグメントのサイズです。 -
min_sample_print
は、割り当ての場所が表示されない最小サンプル数です。 - これをあなたの
.emacs
に追加することで、sturgeonをemacsにロードする:
(opam-share(ignore-errors(car) "プロセスライン" opam "" config "" var "" share ")))))))) ?(および(およびopam-share(ファイルディレクトリ-p opam-share)) ??(add-to-list 'load-path(展開ファイル名 "emacs / site-lisp" opam-share))))
( 'チョウザメが必要です)</pre>
- ノードを起動し、チョウザメで接続します。
プロセスがpid 1234
で起動された場合
M-x sturgeon-connect tezos-nodememprof.1234.sturgeon
(タブ補完はソケット名を見つけるために働く)
CヒープのプロファイリングC <ヒント> <サブ> <サブ> <サブ> <サブ> <サブ> <サブ> <サブ> <サブ> <サブ>?</サブ> </サブ> </サブ> ????</sub>?</sub>
-
valgrind
とmassif-visualizer
をインストールします。
valgrind --tool =マジフのtezos-node run ...
-
Ctrl-C
で停止してから表示してください
massif-visualizer massif.out.pid
パフォーマンスプロファイリング ?? ~~ </sub>
- perf(Debianの
linux-perf
パッケージをインストールしてください。
現在のカーネル用のパッケージが存在しない場合は、以前のバージョンを使用することができます。カーネルが4.9の場合は perf
コマンドを perf_4.9
に置き換えます)。
- ノードを実行し、pidを探します。
-
perf record -p pid --call-stack dwarf
でperfをアタッチします。
次に、 Ctrl-C
でキャプチャを停止します。これは、多くのデータを表すことができます。あまり長くはしないでください。これが多すぎると、 - call-stack dwarf
を削除して管理しやすいものにすることができますが、情報の解釈は難しくなります。
- 結果を
perf report
で表示します。