मेरा प्रश्न: किस तरह के आवेदन के लिए निष्पादन के इतने समवर्ती धागे की आवश्यकता होती है?
1) तथ्य यह है कि एक भाषा "तराजू" का मतलब है कि कम भाषा आपको उस भाषा को खोदने की होगी जब चीजें सड़क के नीचे और अधिक जटिल हो जाती हैं। (इसे "संपूर्ण उत्पाद" अवधारणा कहा जाता है।) बहुत से लोग इस कारण से अपाचे को नग्नेक्स के लिए खोद रहे हैं। यदि आप कहीं भी थ्रेड ओवरहेड द्वारा लगाए गए "हार्ड लिमिट" के करीब हैं, तो आप डर जाएंगे और इसे प्राप्त करने के तरीकों के बारे में सोचना शुरू कर देंगे। वेब साइट कभी भी यह अनुमान नहीं लगा सकती हैं कि उन्हें कितना ट्रैफ़िक मिलेगा, इसलिए थोड़ा समय व्यतीत करने योग्य चीज़ों को स्केलेबल बनाना उचित है।
2) बस शुरू में प्रति अनुरोध एक गोरोइन। आंतरिक रूप से गोरोइन का उपयोग करने के बहुत सारे कारण हैं।
- 100 के साथ-साथ अनुरोधों के साथ एक वेब ऐप पर विचार करें, लेकिन प्रत्येक अनुरोध 100 के बैक-एंड अनुरोधों को उत्पन्न करता है। स्पष्ट उदाहरण एक खोज इंजन एग्रीगेटर है। लेकिन सुंदर कोई भी ऐप स्क्रीन पर प्रत्येक "क्षेत्र" के लिए गोरोइटिन बना सकता है, फिर उन्हें क्रमिक रूप से स्वतंत्र रूप से उत्पन्न कर सकता है। उदाहरण के लिए, Amazon.com पर प्रत्येक पृष्ठ 150+ बैक-एंड अनुरोधों से बना है, जो आपके लिए केवल इकट्ठे हैं। आप ध्यान नहीं देते क्योंकि वे समानांतर हैं, अनुक्रमिक नहीं हैं, और प्रत्येक "क्षेत्र" यह स्वयं की वेब सेवा है।
- किसी भी ऐप पर विचार करें जहां विश्वसनीयता और विलंबता सर्वोपरि हो। आप शायद प्रत्येक आने वाले अनुरोध को कुछ बैक-एंड अनुरोधों को बंद करने के लिए चाहते हैं, और जो भी डेटा पहले वापस आए ।
- अपने ऐप में किए गए किसी भी "क्लाइंट जॉइन" पर विचार करें। "प्रत्येक तत्व के लिए, डेटा प्राप्त करें" कहने के बजाय, आप गोरआउट्स का एक गुच्छा बंद कर सकते हैं। यदि आपके पास दास DBs का एक गुच्छा क्वेरी करने के लिए है, तो आप जादुई रूप से N समय तेजी से जाएंगे। यदि आप नहीं करते हैं, तो यह किसी भी धीमी नहीं होगी।
थ्रेड्स / प्रक्रियाओं की संख्या भौतिक कोर की संख्या से बहुत अधिक होने पर रिटर्न कम हो जाता है
प्रदर्शन सीएसपी में एक कार्यक्रम को तोड़ने का एकमात्र कारण नहीं है । यह वास्तव में कार्यक्रम को समझने में आसान बना सकता है, और कुछ समस्याओं को बहुत कम कोड के साथ हल किया जा सकता है।
जैसा कि ऊपर दी गई स्लाइड्स में है, आपके कोड में समरूपता समस्या को व्यवस्थित करने का एक तरीका है। गोरोइटिन का न होना आपकी भाषा में मैप / डिक्टोनरी / हैश डेटा संरचना नहीं होने जैसा है। आप इसके बिना प्राप्त कर सकते हैं। लेकिन एक बार आपके पास होने के बाद, आप इसे हर जगह उपयोग करना शुरू कर देते हैं, और यह वास्तव में आपके कार्यक्रम को सरल बनाता है।
अतीत में, इसका मतलब था "अपनी खुद की रोल" मल्टीथ्रेडेड प्रोग्रामिंग। लेकिन यह जटिल और खतरनाक था - यह सुनिश्चित करने के लिए अभी भी बहुत सारे उपकरण नहीं हैं कि आप दौड़ नहीं बना रहे हैं। और आप भविष्य के अनुचर को गलती करने से कैसे रोकते हैं? यदि आप बड़े / जटिल कार्यक्रमों को देखते हैं, तो आप देखेंगे कि वे उस दिशा में संसाधनों का एक बहुत खर्च करते हैं।
चूंकि संगामिति अधिकांश भाषाओं का प्रथम श्रेणी का हिस्सा नहीं है, आज के प्रोग्रामर्स के लिए यह एक दृष्टिगोचर है कि यह उनके लिए उपयोगी क्यों होगा। यह केवल अधिक स्पष्ट हो जाएगा क्योंकि प्रत्येक फोन और कलाई घड़ी 1000 कोर की ओर बढ़ेगी। एक अंतर्निहित रेस-डिटेक्टर उपकरण के साथ जहाजों पर जाएं।