2016-07-07 9 views
12

मैं नोडजेएस 6.3.0 का उपयोग कर एक वेब सर्वर एप्लिकेशन लिख रहा हूं। एप्लिकेशन को --expose-gc पैरामीटर के साथ निष्पादित किया गया है, इसलिए मेरे पास global.gc() फ़ंक्शन उपलब्ध है। प्रश्न यह है कि कचरा कलेक्टर के मैन्युअल निष्पादन के दौरान मुझे कैसे पता चलेगा।जब मैं कचरा कलेक्टर मैन्युअल रूप से निष्पादित करता हूं, तो यह कब पूरा हो सकता है जब यह पूरा हो जाता है?

global.gc() एक सिंक्रोनस फ़ंक्शन है और इसका मतलब है कि फ़ंक्शन पूरा होने पर कोड की अगली पंक्ति निष्पादित की जाएगी?

क्या मैं किसी भी तरह निगरानी कर सकता हूं जब कचरा कलेक्टर का मेरा विशिष्ट निष्पादन पूरा हो गया?

धन्यवाद!

उत्तर

8

तो मुझे this उत्तर मिला।

यदि आप --expose-gc ध्वज के साथ नोड प्रक्रिया लॉन्च करते हैं, तो आप ग्लोबल संग्रह चलाने के लिए नोड को बल देने के लिए global.gc() को कॉल कर सकते हैं। ध्यान रखें कि आपके नोड ऐप के भीतर अन्य सभी निष्पादन जीसी पूर्ण होने तक रुक गया है, इसलिए इसे अक्सर इस्तेमाल न करें या यह प्रदर्शन को प्रभावित करेगा।

This इस पर भी एक टिप्पणी।

global.gc() मैन्युअल रूप से चल रहा है (नोड --expose_gc के साथ सक्षम) हर बार 50 एमबी द्वारा स्मृति उपयोग को कम करेगा और ऐप को लगभग 400ms के लिए रोक देगा।

तो ऐसा लगता है कि यह सिंक्रोनस और ब्लॉक समाप्त होने तक ब्लॉक करता है।

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