मैं एक Erlang आवेदन की निगरानी के साथ काम कर रहा हूँ और मैं वर्तमान में निर्धारित करने के लिए कितनी देर तक एक विशिष्ट पीआईडी चल रहा है कोशिश कर रहा हूँ। निरपेक्ष टाइमस्टैम्प या अवधि मेरे लिए काम करेगी, लेकिन मुझे process_info में या sys मॉड्यूल के माध्यम से डेटा के उन बिट्स में से कोई भी दिखाई नहीं देता है। क्या इस जानकारी को एरलांग वीएम के भीतर से प्राप्त करने का कोई तरीका है?प्रक्रिया शुरू होने पर एरलांग रिकॉर्ड करता है?
मैं पीएस कमांड से समग्र वीएम का प्रारंभ समय प्राप्त कर सकता हूं, लेकिन इसमें व्यक्तिगत एरलांग प्रक्रियाओं की कोई दृश्यता नहीं है।
संपादित करें:
मैंने देखा है कि यह वहाँ में है, जब वी एम क्रैश, erl_crash.dump प्रत्येक प्रक्रिया के लिए एक शुरू कर दिया टाइमस्टैम्प होता है, इसलिए मुझे पता है!
वैकल्पिक रूप से (और शायद स्पष्ट बताते हुए): आप प्रक्रिया स्थिति ('gen_server: init' में) की प्रारंभ तिथि को जारी रख सकते हैं, और पूछे जाने पर 'erlang: now' के साथ अंतर वापस कर सकते हैं। –
seconded, बचाने कि आप ओएस 'उपयोग करना चाहिए: टाइमस्टैम्प/0' बजाय' की erlang: अब/0'। 'अब/0' दुर्भाग्य से यह गारंटी देने के लिए वैश्विक लॉक प्राप्त करने की आवश्यकता है कि यह वापसी एकान्त रूप से बढ़ रही है और अद्वितीय है। – troutwine
मुझे ऐसा करना अच्छा लगेगा, लेकिन यह मेरा आवेदन नहीं है, मैं बस इसकी निगरानी कर रहा हूं, इसलिए मैं ऐप में बदलाव नहीं कर सकता। मैं एक दूसरा वीएम शुरू करता हूं और आरपीसी के माध्यम से इसे कमांड भेजता हूं: कॉल करें। – Joe