2013-05-17 4 views
1

J'essaie de profiler l'utilisation du processeur pour mon project en utilisant DTrace. Je viens de suivre le scriptProfilage Node.js avec Dtrace ne montrant pas les noms des fonctions

Le problème est qu'il n'affiche pas les noms des fonctions. Le fichier stacks.out ressemble que:

CPU  ID     FUNCTION:NAME 
    0 73700      :tick-60s 


      node`_ZN2v86Object3GetENS_6HandleINS_5ValueEEE+0x1 
      node`_ZN4node7TCPWrap12OnConnectionEP11uv_stream_si+0x14b 
      node`uv__server_io+0xbf 
      node`uv__io_poll+0x259 
      node`uv_run+0xda 
      node`_ZN4node5StartEiPPc+0x16d 
      node`main+0x1b 
      node`_start+0x83 
      1 

      node`_ZN4node6Buffer4FillERKN2v89ArgumentsE+0x22b 
      0x82474d1b 
      0x8241ee9c 
      0x8241e624 
      0x8241e30f 
      0x82426abd 
      0x82419e4e 
      0x82419948 
      0x82413fc3 
      0x8d20e501 
      0x82416f65 
      0x82413f98 
      0x8243e7d3 
      0x824186c0 
      0x8246e8cf 
      0x8d221899 
      0x8d21308a 
      node`_ZN2v88internalL6InvokeEbNS0_6HandleINS0_10JSFunctionEEENS1_INS0_6ObjectEEEiPS5_Pb+0x101 
      node`_ZN2v88internal9Execution4CallENS0_6HandleINS0_6ObjectEEES4_iPS4_Pbb+0xc9 
      node`_ZN2v88Function4CallENS_6HandleINS_6ObjectEEEiPNS1_INS_5ValueEEE+0x10b 
      node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_8FunctionEEEiPNS1_INS0_5ValueEEE+0x4c 
      node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_6StringEEEiPNS1_INS0_5ValueEEE+0x66 
      node`_ZN4node10StreamWrap12OnReadCommonEP11uv_stream_si8uv_buf_t14uv_handle_type+0x14f 
      node`_ZN4node10StreamWrap6OnReadEP11uv_stream_si8uv_buf_t+0x2e 
      node`uv__read+0x281 
      node`uv__stream_io+0x131 
      node`uv__io_poll+0x259 
      node`uv_run+0xda 
      node`_ZN4node5StartEiPPc+0x16d 
      node`main+0x1b 
      node`_start+0x83 
      1 

Le graphique de la flamme hexagonale montre (par exemple « 0x82474d1b ».) Que les appels de fonctions et non pas le nom de la fonction réelle. J'utilise la boîte vagabondée OmniOS (OS illuminos) r151002 et je l'ai fait() pour générer 32bits node.js sur OmniOS.

Des pensées?

Répondre

3

J'ai rencontré des problèmes similaires lors de l'écriture de mon article sur l'utilisation conjointe de openindiana et de node.js.

http://blog.nearform.com/blog/node-openindiana.html

Je trouve être explicite avec l'arc cpu a été la façon de le résoudre.

./configure --with-dtrace --dest-cpu=x64 

Ne pas oublier de demangle le C++ symboles trop

c++filt <stacks.out> demangled.out 
+0

cool! va essayer et puis je vous dis si cela a fonctionné sur OmniOS :) –

+0

ça marche! tks !!! –

+0

Pour référence future, le billet de blog mentionné ci-dessus semble avoir été déplacé ici: http://www.nearform.com/nodecrunch/node-openindiana – d0gb3r7

Questions connexes