2013-09-03 5 views
5

मैंने यसोड के मुखपृष्ठ पर बेंचमार्क देखा है, लेकिन वे ज्यादातर स्थिर फाइलों के लिए हैं। और स्नैप की वेबसाइट पर बेंचमार्क पुराना है।एक उच्च प्रदर्शन अनुप्रयोग सर्वर के लिए कौन सा Yesod के Warp और स्नैप-सर्वर का चयन करना चाहिए?

मैं एक सेवा के रूप में एक हास्केल मॉड्यूल का पर्दाफाश करने की कोशिश कर रहा हूं। सर्वर का तर्क जेसन में फ़ंक्शन नाम और तर्क प्राप्त करना है, हैकेल फ़ंक्शन का आह्वान करना और आउटपुट को जेसन के रूप में फिर से वितरित करना है। रेफरेंशियल पारदर्शिता थ्रेड सुरक्षा और कार्यों को याद करने और कैश करने की क्षमता की गारंटी देता है।

यदि मैं 2k-5k के क्रम में समवर्ती कनेक्शन का समर्थन करना चाहता हूं, तो मैं इसे लागू करने के बारे में कैसे जाऊं? यह दृष्टिकोण कितना स्केलेबल हो सकता है?

उत्तर

7

मैं वारप/यसोड और स्नैप के बीच चुनाव करने की अत्यधिक अनुशंसा करता हूं कि कौन सा सिस्टम आपको अपना आवेदन बनाने के लिए टूल का सर्वोत्तम सेट प्रदान करता है। वार्प और स्नैप दोनों एक ही अंतर्निहित जीएचसी I/O प्रबंधक का उपयोग कर रहे हैं, और दोनों अत्यधिक अनुकूलित हैं। मुझे आश्चर्य होगा कि प्रत्येक प्रणाली के लिए एक अच्छी तरह लिखित आवेदन, कुछ भी तुच्छ नहीं कर रहा है, एक महत्वपूर्ण प्रदर्शन अंतर दिखाया।

आपका अंतिम अनुच्छेद थोड़ा अस्पष्ट है, लेकिन मुझे लगता है कि या तो वार्प या स्नैप के लिए मूल उत्तर केवल अपना कोड लिखना है, और I/O प्रबंधक जितना संभव हो सके स्केल करेगा। यदि आपको वास्तव में बाधा होने के लिए समवर्ती कनेक्शन मिलते हैं, तो आप जीएचसी 7.8 (अभी तक जारी नहीं किए गए हैं, लेकिन इसमें बहुत सुधार हुआ I/O प्रबंधक है) का उपयोग करके, या एकाधिक सर्वरों का उपयोग करके प्रीफर्क तकनीक को आजमाने का विचार कर सकते हैं।

5

वार और स्नैप के लिए प्रकाशित अधिकांश बेंचमार्क बेहद सरल और बहुत ही समेकित बेंचमार्क पर आधारित हैं जो "पोंग" की स्थिर स्ट्रिंग देता है। बेंचमार्किंग के लिए यह बहुत अच्छा है कि एक वेब सर्वर HTTP अनुरोधों को पार्स करने, HTTP प्रतिक्रियाओं का निर्माण आदि पर कितना कुशल है, लेकिन अधिकांश अनुप्रयोगों में उस सामान को करने में व्यतीत समय व्यर्थ होगा। दूसरा, मेरा अनुमान है कि वार्प और स्नैप के बीच अभी भी कोई प्रदर्शन अंतर भविष्य में कम होने की संभावना है क्योंकि दोनों सर्वर सैद्धांतिक सीमा में सुधार और दृष्टिकोण जारी रखते हैं। साथ ही, मुझे उम्मीद है कि जीएचसी 7.8 में प्रदर्शन सुधार से दोनों सर्वरों को भी काफी फायदा होगा।

हास्केल बड़ी संख्या में समवर्ती कनेक्शन के साथ उच्च प्रदर्शन प्राप्त करने के लिए एक उत्कृष्ट विकल्प है। हास्केल में हरी धागे हैं जो अधिकांश अन्य भाषाओं में धागे की तुलना में बेहद सस्ते हैं। यह हास्केल वेब ढांचे को एक बड़ा फायदा देता है। हम हर कनेक्शन के लिए एक नया धागा बंद कर सकते हैं और जीएचसी को अनुकूलित करने के लिए बड़े पैमाने पर प्रयासों का लाभ उठा सकते हैं, जबकि एक अच्छा प्रोग्रामिंग मॉडल बनाए रखने के दौरान भी शानदार प्रदर्शन किया जा सकता है।

यसोड बनाम स्नैप के संबंध में, एक कारण है कि दोनों अलग-अलग परियोजनाओं के रूप में मौजूद हैं। वे दो अलग-अलग दिशाओं से हास्केल में वेब विकास की समस्या के करीब आ रहे हैं। वे दोनों आपके द्वारा किए गए प्रदर्शन से लाभ प्राप्त करते हैं, इसलिए आपको उन दृष्टिकोणों के आधार पर चयन करना चाहिए जिन पर आप पसंद करते हैं।

: यहां कुछ संसाधन आरंभ करने के लिए कर रहे हैं
संबंधित मुद्दे