2015-01-08 13 views
12

मेरे पास एक उचित आकार का एएसपी.नेट एमवीसी/वेबएपीआई वेब एप्लिकेशन (~ 100KLOCS) है जो भार के नीचे थोड़ा सा क्रैकिंग कर रहा है (लगभग 1 एमएम अनुरोध/दिन)। उदाहरण के लिए, एक पृष्ठ को आमतौर पर लोड करने में 2-3 सेकंड लगते हैं, जो इष्टतम से एक अच्छा सौदा है। मैं संभव बाधाओं के लिए चारों ओर देख शुरू कर दिया है के रूप में, मैं मदद नहीं कर सकता लेकिन लगता है कि Ninject, मेरे आईओसी कंटेनर, एक बहुत ही स्वस्थ अंतर से सबसे धीमी दर्जा दिया है:प्रदर्शन कारणों से निनजेक्ट को बदलने के लायक है?

http://www.palmmedia.de/Blog/2011/8/30/ioc-container-benchmark-performance-comparison https://github.com/ninject/ninject/issues/84

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

क्या कोई भी वास्तविक दुनिया की कहानियां या साझा करने के लायक है? या निनजेक्ट भी एक बाधा है या नहीं, यह बताने के बारे में सुझाव?

+0

यह प्रश्न ऑफ-विषय प्रतीत होता है क्योंकि यह किसी विशिष्ट कोड से संबंधित समस्या के बारे में नहीं है। – theMayer

+1

मैं असहमत हूं, लेकिन फिर मुझे पहले से ही विश्वास है कि प्रश्न विषयों को कुछ अधिक आक्रामक closers से अधिक होना चाहिए, ऐसा लगता है कि :-)।लेकिन यह * एक बहुत ही विशिष्ट कोडिंग समस्या से संबंधित है: मैं अपने कोड में एक ढांचे का उपयोग कर रहा हूं, कुछ संभावित समस्याओं को देखा है, और जानना चाहता हूं कि उन समस्याओं को एक अलग ढांचे के साथ संबोधित किया जा सकता है या नहीं। मेरे लिए काफी कोड-विशिष्ट लगता है :-)। –

+1

मैं उस बिंदु पर आपसे सहमत हूं। करीबी वोट के लिए खेद है। Unvoted। – theMayer

उत्तर

1

"इसके लायक" केवल आपके द्वारा तय किया जा सकता है। क्या आपने अपनी साइट पर सबसे खराब बाधाएं देखने के लिए एक प्रोफाइलर चलाया है? यह निनजेक भी नहीं हो सकता है कि यह आपका सबसे बुरा अपराधी है।

निश्चित रूप से, कहीं भी आप कुछ समय निकाल सकते हैं, यह कई लोगों के लिए लायक होगा। लेकिन इसमें से बहुत से आपके उपयोग पर निर्भर करता है। उदाहरण के लिए, यदि आप आमतौर पर उथले निर्भरता ग्राफ के साथ केवल कुछ ऑब्जेक्ट्स इंजेक्शन कर रहे हैं, तो शायद आपको अधिक लाभ दिखाई नहीं देगा। लेकिन, यदि आपके पास सैकड़ों ऑब्जेक्ट्स के साथ गहरे निर्भरता ग्राफ हैं, तो आपको बहुत लाभ दिखाई दे सकता है।

सरल इंजेक्टर को जल्द ही त्यागने की संभावना नहीं है, क्योंकि प्राथमिक डेवलपर एक प्रसिद्ध व्यक्ति है।

संरचना मैप एक और अच्छी पसंद है, हालांकि यह प्रदर्शन में पैक के बीच है, यह अच्छी तरह से समर्थित है और एक अच्छा समुदाय है।

3

मुझे पता है कि मैं इस प्रश्न के साथ खेल के लिए थोड़ा देर हो चुकी हूं, और मुझे यकीन है कि आप पहले से ही कुछ निष्कर्ष पर आ चुके हैं, लेकिन ऐसा कुछ है जो मुझे हाल ही में बहुत कुछ पूछता है। निंजा निश्चित रूप से सबसे तेज़ नहीं है, लेकिन यह (मेरी राय में), मैंने कभी भी सबसे लचीला और एक्स्टेंसिबल ढांचा तैयार किया है, और यह काम करने के लिए एक पूर्ण खुशी है। मैंने कभी आईओसी समस्या में भाग नहीं लिया है कि मैं निनजेक्ट के साथ हल नहीं कर सका।

यह वास्तव में एक व्यापार है। जब मैं एक ऐसे ग्राहक के साथ काम कर रहा हूं जहां लचीलापन और विस्तारशीलता महत्वपूर्ण है, आमतौर पर व्यावसायिक ऐप्स की आंतरिक चेहरा रेखा, मैं निनजेक्ट का उपयोग करता हूं। जब मैं छोटे केंद्रित घटकों पर काम कर रहा हूं जहां प्रदर्शन महत्वपूर्ण है, उदाहरण के लिए उच्च मात्रा वाली बाहरी वेब सेवाओं का उपयोग करना, मैं सरल इंजेक्टर जैसे कुछ तेज़ी से उपयोग करता हूं। हालांकि, मुझे बार-बार पता चला है कि मुझे कुछ और उन्नत करने की आवश्यकता है, और अंत में इसे बदलना समाप्त हो गया है। चूंकि मैं अपनी पद्धतियों को माइक्रो-सर्विस स्टाइल दृष्टिकोण में अनुकूलित करता हूं, हालांकि, मैंने छोटे ढांचे में अधिक मूल्य देखना शुरू कर दिया है।

आपको एक प्रदर्शन में वृद्धि दिखाई देगी जो आपको दिखाई देने वाली मात्रा के प्रकार की तरह लगता है। लेकिन उस प्रदर्शन में वृद्धि का अनुमानित मूल्य पूरी तरह से निर्भर करता है कि आप लचीलापन और निनजेक प्रदान करने वाली अन्य क्षमताओं पर कितना मूल्य डालते हैं।

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