2012-06-26 8 views
6

現在、私のnode.jsアプリケーションのプロファイリングを行っています。私はこのブログを見つけました:http://blog.nodejs.org/2012/04/25/profiling-node-js/これはDtraceを使うべきだと示唆しています。 私はここに与えられた手順を使用してのUbuntu 12.04上のDTraceインストール: CPU:DTraceを使用したNode.jsのプロファイリング

dtrace -o stacks.out -n 'profile-97/execname == "node" && arg1/{ 
@[jstack(100, 8000)] = count(); } tick-60s { exit(0); }' 

stacks.outこの除き、空白のまま:私のノード・アプリケーションが実行されている間、私は私のターミナルで次のコマンドを実行したときしかし、https://askubuntu.com/questions/60940/how-do-i-install-dtrace

をID機能:名前 1 387695:tick-60s

何が間違っている可能性がありますか?

+0

Linuxで最新のnode.jsを使用すると、Systemtapを見ることができます。私はどれくらいサポートされているのかわかりません。 GC => https://gist.github.com/bnoordhuis/4078925を測定します。私はこれでまだ遊んでいないが、有望/面白そうに見える。 – Alfred

答えて

7

現在、Linux DTraceの実装は非常に若く、多くの重要な機能が欠けています(実稼働環境では使用できません)。具体的には、使用しているDTraceの実装(Paul Fox's)は、ユーザスペースのトレースをサポートする作業があれば、それほど多くのことをしていません。だから、Linux(現在)ではこれを行うことができません。

これを機能させるには、DTraceをより完全に実装したオペレーティングシステムを使用する必要があります。 OmniOS,SmartOSまたはOpenIndianaのようなIllumosのいずれかを使用することをお勧めします。

the article you linked toの「前提条件」セクションをもう一度お読みください。また、コンパイル時にDTraceサポートをオンにして32ビットNodeJSを使用することを確認する必要があることも記載されています。

する(Mac OS Xは良いDTraceの実装を持っていますが、the articleによると、それはこの例のために必要とされるUSTACKヘルパーをサポートしていません。)

+0

OmniOS(IllumosベースのOS)にnode.jsをインストールするには:https://gist.github.com/dalssoft/5595688 –

3

@psanfordは、特別のDTraceであなたの問題を伴う良い答えを持っていますあなたの開始文からは、のように見えます。は、Node.jsアプリケーションをトレースすることができます.DTraceはこれを行う方法の一例に過ぎません。

この場合、node-inspectorv8-profilerを組み合わせると、アプリケーションに必要なイントロスペクションが提供されます。しかし、ノード0.6.xで動作するかどうかはわかりませんが、前回の使用時は0.4.10でした。

1

オラクル DTrace利用可能日Oracle Linux。 このディストリビューションをダウンロードすることができますhere