में सीपीयू गहन कार्यों के लिए child_process बनाम मैं node-unfluff
, जो एचटीएमएल तार से सामग्री निकालता उपयोग करने के लिए कोशिश कर रहा हूँ। हालांकि, यह आमतौर पर चलाने के लिए ~ 200ms लेता है। चूंकि यह समकालिक रूप से चलता है, यह बहुत धीमा है। मैं इसे असंकालिक रूप से चलाने के लिए चाहता हूँ।वेब कर्मचारी Node.js
जहां तक मुझे पता है, मेरे विकल्प वेब वर्कर्स (https://github.com/audreyt/node-webworker-threads) या child_process
(https://nodejs.org/api/child_process.html) हैं। क्या अन्य बेहतर विकल्प हैं?
यदि नहीं, तो इनमें से कौन सा गति या अन्य कारकों के मामले में बेहतर है?
संपादित करें:
वहाँ भी है धागे ए गोगो (https://github.com/xk/node-threads-a-gogo) और छोटे कार्यकर्ता (https://github.com/avoidwork/tiny-worker)।
WebWorker धागे require
का समर्थन नहीं करता है, ताकि अब एक विकल्प नहीं है।
यह संभव है require
करने के लिए अपने load
फ़ंक्शन का उपयोग करके ए गोगो धागे का उपयोग करके फ़ाइलें, लेकिन यह एक hacky वैकल्पिक हल की तरह लगता है।
छोटे कार्यकर्ता इस समय Github पर केवल 26 सितारों है, तो मैं उत्पादन कोड में इसका इस्तेमाल करने में संकोच कर रहा हूँ। यह require
का समर्थन करता है।
मैं child_process
का उपयोग कर हो, तो कोई बेहतर विकल्प मेरे अपने WebWorker कार्यान्वयन लेखन पर विचार कर रहा हूँ।
आप अपने उपयोग के मामले में थोड़ा और व्याख्या कर सकते हैं? क्या आप एकाधिक यूआरएल प्रोसेसिंग में समांतरता प्राप्त करने की कोशिश कर रहे हैं या आप किसी भी तरह नोड-अपफफ के भीतर प्रदर्शन को बढ़ाने की कोशिश कर रहे हैं? जब आप नोड में लाइब्रेरी के आधार पर होते हैं तो आपने बाल प्रक्रियाओं का उपयोग करके कल्पना कैसे की? मानक नोड क्लस्टरिंग आपकी सूची में कोई विकल्प क्यों नहीं है (ध्यान में रखते हुए कि यह वास्तव में बाल प्रक्रियाओं पर भरोसा करता है)? – SylonZero
मैं एक सर्वर के रूप में नोड का उपयोग कर रहा हूँ। यदि किसी फ़ंक्शन को चलाने के लिए 200ms लगते हैं, तो कोई भी उपयोगकर्ता 200ms में सर्वर प्रतिक्रिया प्राप्त नहीं कर सकता है। मैं इसे अतुल्यकालिक बनाना चाहता हूं ताकि सर्वर अवरुद्ध न हो। मैं एक और नोड प्रक्रिया शुरू करने के लिए 'child_process' का उपयोग कर सकता हूं। मैंने पहले कभी नोड क्लस्टरिंग का उपयोग नहीं किया है, लेकिन मेरी समझ यह है कि यह प्रत्येक कोर के लिए एक सर्वर बनाता है। यदि प्रत्येक कोर पर 'नोड-unfluff' चल रहा है, तो हर सर्वर अवरुद्ध है। –
ठीक है, आपका प्रश्न स्पष्ट हो जाना शुरू हो रहा है। हालांकि, भले ही किसी फ़ंक्शन का उदाहरण (नोड-अपफ्लफ का उपयोग करना) सिंक्रोनस है, जो अन्य उदाहरणों को अन्य अनुरोधों को नोड को निकालने से रोकता नहीं है। इसलिए, एक उपयोगकर्ता को 200ms का इंतजार करना पड़ सकता है लेकिन इसका आमतौर पर यह मतलब नहीं है कि * अन्य * उपयोगकर्ताओं के लिए अनुरोध शुरू नहीं किए जा सकते हैं।क्या आपने परीक्षण किया है और पाया है कि इस unfluff मॉड्यूल का उपयोग वास्तव में समवर्ती अनुरोध ब्लॉक करता है? – SylonZero