2011-03-15 13 views
13

मुझे शीर्ष 2008 .NET DI/IoC कंटेनर here के प्रदर्शन के परीक्षण के लिए कुछ 2008 बेंचमार्क परिणाम मिल गए हैं। लेकिन मैं कोई अद्यतन परिणाम नहीं ढूंढ पाया है। क्या वहां कोई बेंचमार्क है जो कुछ बड़े आईओसी कंटेनर (स्ट्रक्चर मैप, यूनिटी, निनजेक्ट, ऑटोफैक, कैसल विंडसर इत्यादि) की तुलना करें?डीआई/आईओसी कंटेनर प्रदर्शन बेंचमार्क तुलना?

+0

मैं रीड से सहमत हूं। इसके अलावा, मानक गलत होने के लिए आसान हैं। उदाहरण के लिए इस धागे पर देखें: http://stackoverflow.com/questions/5298240/hiro-vs-other-ioc-containers/5308894#5308894। – Steven

+1

तथ्य यह है कि नेट से ऐसे नए मानक गायब हैं, मैं एक बयान के रूप में लेता हूं कि यह कम चिंता का विषय है। –

उत्तर

44

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

यह समझें कि आपके द्वारा उद्धृत बेंचमार्क सबसे खराब स्थिति में है, केवल गति में 3-4x अंतर दिखा रहा है 1 मिलियन कॉल एक "असली दुनिया" परिदृश्य में, डीआई/आईओसी का उपयोग निर्भरताओं को तारित करने के लिए किया जाता है, और समग्र अनुप्रयोग प्रदर्शन पर बहुत कम प्रभाव पड़ता है, क्योंकि यह निर्माण चरण आपके समग्र रनटाइम का अविश्वसनीय रूप से छोटा हिस्सा है। "उच्च प्रदर्शन" बनाम "कम प्रदर्शन" IoC कंटेनर का चयन करने से आपके एप्लिकेशन के कथित प्रदर्शन पर कोई स्पष्ट प्रभाव नहीं पड़ेगा।

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

+6

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

+0

3-4x अंतर नहीं हैं जो अद्यतन बेंचमार्क दिखा रहे हैं। उदाहरण के लिए, http://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison – daniloquio

6

मेरे मामले में, आईओसी कंटेनर की गति एक महत्वपूर्ण कारक रहा है। मेरे पास एक ऐसा एप्लिकेशन है जो कई इंजेक्शन करता है और पाया कि निनजेस आवेदन को धीमा कर रहा था। आईओसी को पूरी तरह से प्रदर्शन के मुद्दों को हल किया। मैं अन्य समाधानों की तलाश में रहूंगा।

+0

के अनुसार, निनजा बनाम लाइट इंजेक्शन अंतर 200x से अधिक हो सकता है, यदि आईओसी कंटेनर हल हो जाता है प्रदर्शन समस्याएं, आप [सरल इंजेक्टर] (https://simpleinjector.codeplex.com/) को आजमा सकते हैं। सरल इंजेक्टर का प्रदर्शन ओवरहेड हाथ से ऑब्जेक्ट ग्राफ़ को नए करने की तुलना में न्यूनतम (और कभी-कभी बेहतर) जैसा कि [इस बेंचमार्क] में देखा जा सकता है (http://www.palmmedia.de/blog/2011/8/30/ आईओसी कंटेनर-बेंचमार्क प्रदर्शन-तुलना)। – Steven

+0

DryIoC 2.1.3 में देखें –

5

IoC Container Benchmark - Performance comparison प्रदर्शन है और 20 से भी अधिक उत्पादों के लिए तुलना टेबल की सुविधा है और यह है अप-टू-डेट (नवीनतम अद्यतन 2017/12/21)

लेख से निष्कर्ष:

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

संबंधित https://stackoverflow.com/questions/1140730/net-di-containers-comparison/ प्रश्न भी देखें।

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