मैंने Node.js HTTP सर्वर के साथ छेड़छाड़ शुरू कर दी है और वास्तव में सर्वर साइड जावास्क्रिप्ट लिखना पसंद करता हूं, लेकिन कुछ मुझे अपने वेब एप्लिकेशन के लिए Node.js का उपयोग करना शुरू करने से रोक रहा है।
मैं संपूर्ण async I / O कॉन्सेप्ट को समझता हूं, लेकिन मैं उन एज मामलों के बारे में कुछ चिंतित हूं जहां प्रक्रियात्मक कोड बहुत सीपीयू गहन है जैसे कि छवि हेरफेर या बड़े डेटा सेट को सॉर्ट करना।
जैसा कि मैं इसे समझता हूं, सरल वेब पेज अनुरोधों के लिए सर्वर बहुत तेज़ होगा जैसे कि उपयोगकर्ताओं की सूची देखना या ब्लॉग पोस्ट देखना। हालाँकि, यदि मैं बहुत सीपीयू सघन कोड लिखना चाहता हूं (उदाहरण के लिए एडमिन बैक एंड में) जो ग्राफिक्स उत्पन्न करता है या हजारों छवियों का आकार बदलता है, तो अनुरोध बहुत धीमा (कुछ सेकंड) होगा। चूँकि यह कोड async नहीं है, इसलिए सर्वर पर आने वाले प्रत्येक अनुरोध को कुछ सेकंड के दौरान अवरुद्ध कर दिया जाएगा जब तक कि मेरा धीमा अनुरोध नहीं किया जाता है।
एक सुझाव सीपीयू गहन कार्यों के लिए वेब वर्कर्स का उपयोग करना था। हालाँकि, मुझे डर है कि वेब कर्मचारी एक अलग जेएस फ़ाइल को शामिल करके काम करने के बाद से स्वच्छ कोड लिखना मुश्किल बना देंगे। क्या होगा यदि सीपीयू गहन कोड किसी वस्तु की विधि में स्थित हो? यह सीपीयू गहन है कि हर विधि के लिए एक जेएस फ़ाइल लिखने के लिए बेकार है।
एक अन्य सुझाव था कि एक बच्चे की प्रक्रिया को बढ़ावा दिया जाए, लेकिन यह कोड को और भी कम बनाए रखता है।
इस (कथित) बाधा को दूर करने के लिए कोई सुझाव? सीपीयू भारी कार्यों को एसिंक्स निष्पादित करते समय सुनिश्चित करें कि आप Node.js के साथ स्वच्छ वस्तु उन्मुख कोड कैसे लिखते हैं?