私の唯一の目的は、vTune を使用して Node.js で JavaScript コードのプロファイリングを行うことです。
この投稿の下に表示される手順に従おうとしました: vTune で Nodejs をプロファイリングしますが、運がありません。
Debian 7 x86_64 を使用しており、vTune Amplifier XE のバージョンは 2015 (評価モード) です。モジュールはservice sep3_15 start
起動時にロードされ、 lsmod
. また、jitprofiling
vTune で提供されているサンプル プロジェクトをビルドすると、動作します (動的コンテンツが表示されます)。したがって、私の問題は、vTune をサポートする Node.js をビルドすることです。
上記の手順を実行し、 と で変更vcbuild.bat nosign
する./configure
とmake
、「../src/node.cc:22:67: 致命的なエラー: v8-vtune.h: そのようなファイルまたはディレクトリはありません」というエラーが表示され、正しくコンパイルし続ける唯一の解決策は、次の行も追加することですnode.gyp
。
'include_dirs': [
// ...
'deps/v8/src/third_party/vtune',
// ...
これは、インクルード ( v8-vtune.h
) を取得してノードをコンパイルする唯一の方法です。
しかし、vTune Amplifier でインポートするとDynamic code
、JS のソースもソースも表示されません。
./configure --build
とでデバッグ用のノードを構築し、 からではなく からバイナリを./configure --debug --gdb
強制的に実行するなど、さまざまなことを試しました。vTune でプロファイリングするときに警告がスローされないため、シンボル定義 (リリース バージョンよりもはるかに大きい) があることがわかります。ノードのソース コードはすべて表示されますが、.node
out/Debug/node
out/Release/node
strings node | wc -l
Dynamic code
gdbjit=on
私は変数を強制しようとさえしましvtunejit=on
たdeps/v8/Makefile
私はナイトリー ビルド 0.11.11 と最新の 0.11.14 で試しました。
どうすればいいのかわかりません。
編集:さまざまなオプションを使用してより多くのコンパイルを行っていました(上記)。最後に、0.11.12 バージョンまではどのように動作するかを確認できますが、0.11.13 も 0.11.14 も動作しません。