2012-06-26 13 views
6

का उपयोग कर नोड.जेएस प्रोफाइलिंग मैं वर्तमान में अपने node.js एप्लिकेशन को प्रोफाइल कर रहा हूं। मुझे यह ब्लॉग मिला: http://blog.nodejs.org/2012/04/25/profiling-node-js/ जो सुझाव देता है कि मुझे ड्रेटस का उपयोग करना चाहिए। जब मैं अपने टर्मिनल में इस आदेश को चलाने जबकि मेरी नोड आवेदन चल रहा है https://askubuntu.com/questions/60940/how-do-i-install-dtraceडीटीआर

हालांकि

:

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

stacks.out इस छोड़कर खाली रहता है: सीपीयू मैं यहाँ दिए गए चरणों का उपयोग कर Ubuntu 12.04 पर dtrace स्थापित आईडी फ़ंक्शन: NAME 1 387695: टिक -60s

कोई भी सुझाव क्या गलत हो सकता है?

+0

लिनक्स में नवीनतम node.js के साथ आप सिस्टमटैप पर एक नज़र डाल सकते हैं। मुझे नहीं पता कि कितना समर्थित है। जीसी => https://gist.github.com/bnoordhuis/4078925 मापें। मैंने अभी तक इसके साथ नहीं खेला है लेकिन आशाजनक/दिलचस्प लग रहा है। – Alfred

उत्तर

7

लिनक्स डीटीआरएस कार्यान्वयन वर्तमान में बहुत ही युवा हैं और कई महत्वपूर्ण विशेषताओं को याद कर रहे हैं (और उत्पादन के उपयोग के लिए किसी भी तरह से तैयार नहीं हैं)। विशेष रूप से डीटीआरएस कार्यान्वयन जिसका उपयोग आप कर रहे हैं (पॉल फॉक्स) ने उपयोगकर्ता स्पेस ट्रेसिंग का समर्थन करने के लिए कोई काम नहीं किया है। तो आप इसे लिनक्स (अभी अभी) के तहत नहीं कर पाएंगे।

यदि आप इसे काम पर लेना चाहते हैं तो आपको डीटीआरएस के पूर्ण कार्यान्वयन के साथ एक ऑपरेटिंग सिस्टम का उपयोग करने की आवश्यकता होगी। आप सबसे अच्छे शर्त हैं Illumos डेरिवेटिव्स (जैसे OmniOS, SmartOS या OpenIndiana) का उपयोग करना सबसे अच्छा शर्त है।

आपको the article you linked to के 'पूर्वापेक्षाएँ' अनुभाग को दोबारा पढ़ना चाहिए। यह बताता है कि आपको यह सुनिश्चित करने की भी आवश्यकता है कि आप संकलन समय पर डीटीआरएस समर्थन के साथ 32 बिट नोडजेएस का उपयोग करें।

(मैक ओएस एक्स के लिए एक अच्छा DTrace कार्यान्वयन करता है, लेकिन the article के अनुसार यह ustack सहायकों जो इस उदाहरण के लिए आवश्यक हैं का समर्थन नहीं करता।)

+0

OmniOS (Illumos आधारित ओएस) पर node.js स्थापित करने के लिए: https://gist.github.com/dalssoft/5595688 –

3

@psanford एक अच्छा जवाब विशेष रूप से DTrace के साथ अपनी समस्याओं को शामिल किया है, लेकिन आपकी शुरुआती वाक्य से, ऐसा लगता है कि आप चाहते हैं अपने Node.js ऐप का पता लगाने में सक्षम होना है, और डीटी्रेस ऐसा करने के लिए केवल एक उदाहरण था।

उस स्थिति में, node-inspector और v8-profiler का संयोजन आपको अपने आवेदन में वांछित आत्मनिरीक्षण प्रदान करेगा। मुझे यकीन नहीं है कि यह नोड 0.6.x के साथ काम करता है, हालांकि, पिछली बार जब मैंने इसका इस्तेमाल किया था तो यह 0.4.10 के साथ था।

1

ओरेकल announcedपर डीटीआरएस उपलब्धता ओरेकल लिनक्स। आप इस distro here डाउनलोड कर सकते हैं।