2013-02-14 13 views
16

क्या डायग्नोस्टिक्स के लिए इवेंट लूप पर देखना संभव है?node.js इवेंट लूप डायग्नोस्टिक्स

मैं जानना चाहता हूं कि वर्तमान में निष्पादन के लिए कितनी घटनाएं प्रतीक्षा कर रही हैं (सेटटाइमआउट/अंतराल को छोड़कर)।

अद्यतन: मैं इसे चलने वाली नोड प्रक्रिया के अंदर से करना चाहता हूं।

+0

दिलचस्प सवाल, मैं अगर किसी के पास कोई संकेत है, तो नोड के कोड में देखने से कम पता लगाने के लिए चारों ओर चिपके रहेंगे। –

+0

मदद मिलेगी? मुझे पता है कि यह नोड प्रोफाइल करने के लिए प्रयोग किया जाता है। – booyaa

+0

http://blog.nodejs.org/2012/04/25/profiling-node-js/ – TheBronx

उत्तर

10

setImmediate()

साथ NodeJS 0.10 के लिए अपडेट किया गया जबकि मुझे लगता है मैं एक और स्वास्थ्य मीट्रिक कि उपयोगी हो सकता है पाया कतार में इंतजार कर घटनाओं की संख्या को खोजने के लिए सक्षम नहीं था:

var ts=Date.now(); 
setImmediate(function() 
{ 
    var delay=Date.now()-ts; 
}); 

देरी में इसे निष्पादित करने के लिए ईवेंट को क्यूइंग करने से मिली मिलीसेकंड शामिल होंगे।

यह सीपीयू गहन घटनाओं को भी ध्यान में रखता है (जो केवल # घटनाओं को देखकर संभव नहीं होगा)।

माप स्वयं इवेंट कतार को भी प्रभावित करेगा लेकिन इसमें पूर्ण प्रोफाइलर की तुलना में बहुत कम ओवरहेड होना चाहिए।

+2

बहुत अच्छा होगा अगर हम वास्तव में ईवेंट क्यू 'देख सकते हैं ... मुझे लगता है कि आपको ऐसा करने का कोई तरीका नहीं मिला? – tbarbe

0

नोडफली का एजेंट इवेंट लूप समेत संपूर्ण नोड.जेएस प्रदर्शन पर नज़र रखता है। आप इस कार्यक्षमता के बारे में Taling ब्लॉग प्रविष्टियों की एक जोड़ी पढ़ सकते हैं:

http://blog.nodefly.com/post/41119237822/monitoring-the-event-loop-in-node-js

http://blog.nodefly.com/post/41201793716/just-another-friday-night-chat-scaling-node-js-and

आप पाते हैं और एजेंट यहाँ से बाहर की कोशिश कर सकते हैं:

http://www.nodefly.com

+1

ऐसा लगता है कि मैं पहले जो वर्णन कर रहा था उसके समान कुछ ऐसा करता है: "नोडफ्लि एजेंट इवेंट लूप के लिए समय डेटा प्राप्त करने के लिए अगला टिक फ़ंक्शन को पैच करता है।" – laktak

संबंधित मुद्दे