2010-09-30 27 views
62

महत्वपूर्ण अपडेट: तल पर अद्यतन 5 देखें वहाँ asp.net MVC के 3 में कोई प्रदर्शन मुद्दा है, यह एक बेंचमार्क मुद्दाASP.NET MVC 3 उस्तरा प्रदर्शन

मैं एक साधारण हैलो दुनिया लगा रहे एएसपीनेट एमवीसी 2,3 एएसपीएक्स और 3 रेज़र में प्रोजेक्ट और उन्हें बेंचमार्क किया गया। मैं जो देखता हूं वह है:

System     Requests per second 
------------------------------------------- 
asp.net mvc 2 ASPX      4200 
asp.net mvc 3 Beta 1 ASPX    3200 
asp.net mvc 3 Beta 1 Razor    1700 

रेज़र के साथ क्या गलत है, यह इतना धीमा है?

अद्यतन: मैंने परीक्षण को फिर से शुरू कर दिया है। सभी 4 टेस्ट वर्चुअल निर्देशिकाएं समान .NET 4 एकीकृत मोड ऐप पूल का उपयोग करती हैं। सभी परियोजनाएं नई खाली एक्स प्रोजेक्ट जोड़ने और 1 पेज टेक्स्ट के साथ 1 पेज जोड़ने और बिना कोड के साथ की जाती हैं। सभी साइटों को रिलीज मोड में संकलित किया जाता है। मेरा सिस्टम विंडोज 7, 4 जीबी i7 4 कोर है। मैंने आईआईएस को गर्म करने के लिए परीक्षण 2 बार चलाया है और ये दूसरे रन परिणाम हैं। अपाचे बेंच पैरामीटर: अब -n100000 -c1000 परिणाम:

System   Requests per second CPU Utilization 
---------------------------------------------------- 
asp.net 4      4780    43% 
mcv 2       4322    58% 
mvc 3 beta 1 aspx    2324    54% 
mvc 3 beta 1 razor   1615    54% 

अद्यतन 2 स्कॉट गुथरी अपने ब्लॉग में उत्तर दिया:

हम पूरी तरह से अभी तक MVC3 अनुकूल नहीं है (आम तौर पर एक है हम बहुत सी कैश ट्यूनिंग करते हैं)। हम उम्मीद करते हैं कि रेजर अंततः रिलीज होने से पहले .aspx व्यू इंजन के समान प्रदर्शन होगा।

System   Requests per second CPU Utilization 
---------------------------------------------------- 
mvc 3 rc1 razor    1960    54% 
mvc 3 rc2 razor    2187    54% 
mvc 3 rc2 aspx    4014    58% 

अद्यतन 5 सभी परीक्षणों को रिलीज़ मोड में किया लेकिन, समस्या मेरी web.config फ़ाइल में debug="true" (वह भी प्रभाव रिलीज बनाता है) था, के बाद झूठे, इस मुद्दे के लिए परिवर्तन यह तय की। और यह दिलचस्प है कि यह इस पैमाने पर केवल रेज़र टेम्पलेटिंग को कैसे प्रभावित कर रहा है। यह तैनाती पर हमारे दिमाग में होना चाहिए।

System   Requests per second CPU Utilization 
---------------------------------------------------- 
mvc 3 rc2 razor    3940    58% 
mvc 3 rc2 aspx    4100    58% 

एएसपीनेट एमवीसी टीम, उत्कृष्ट नौकरी के लिए धन्यवाद!

+10

आपने बेंचमार्क कैसे किया? क्या आपकी साइट मोड रिलीज में आईआईएस पर तैनात थी? क्या आपने ['<परिनियोजन खुदरा =" सत्य "

+0

+1 डारिन - अल्फा/बीटा चरणों में किसी उत्पाद को पूरी तरह से अनुकूलित करने की अपेक्षा नहीं कर सकता है। – Oded

+0

यह एक बिल्कुल उपयुक्त उत्तर है, आप इसे एक टिप्पणी के रूप में क्यों सबमिट करेंगे? – Slavo

उत्तर

25

(नई इसका जवाब आपके RC2 संख्या पर प्रतिक्रिया के लिए)

अद्यतन संख्या के लिए धन्यवाद। कुछ अंक:

  1. आपका Aspx संख्या अर्थ है कि हम उम्मीद करते हैं MVC3 Aspx MVC2 Aspx (थोड़ा इस तरह के एक नमस्ते विश्व उदाहरण में धीमी होने की उम्मीद है)
  2. आपका उस्तरा संख्या के समान होने के लिए, अच्छे लग रहे हैं संदिग्ध देखो। हम जानते हैं कि रेजर समकक्ष Aspx की तुलना में थोड़ा धीमा है, हालांकि, अंतर 5% -7% से बड़ा नहीं होना चाहिए। आपकी संख्या 50% धीमी है, जो हमारे परिणामों के साथ मेल नहीं खाती है। जांचें कि प्रोजेक्ट रिलीज में संकलित है या आपके पास debug="false" वेब.config में सेट है या नहीं।
  3. आपका सीपीयू उपयोग थोड़ा संदिग्ध है। 1000 समवर्ती अनुरोधों के साथ सीपीयू को 100% उपयोग किया जाना चाहिए। (यहां तक ​​कि केवल 8 समवर्ती अनुरोध पर्याप्त होने चाहिए क्योंकि आपके पास 8 वर्चुअल कोर हैं)
  4. आपके परीक्षण लगभग 20-25 सेकंड के लिए चल रहे हैं।यह कम तरफ थोड़ा सा है क्योंकि प्रणाली में कहीं और गतिविधि की एक छोटी (1-2 सेकंड) फटने से आपके परिणाम काफी महत्वपूर्ण हो सकते हैं।
  5. बिंदु 4 से संबंधित, क्या आपने प्रत्येक परिदृश्य को एक बार या कुछ बार चलाया? क्या आप परिणामों में ज्यादा भिन्नता देख रहे हैं? चूंकि आपका ओएस पृष्ठभूमि में अन्य चीजें कर रहा है, इसलिए रनों के बीच अलग-अलग परिणाम देखने के लिए यह सामान्य है।
+0

आपको बहुत धन्यवाद, मार्क 2, समस्या हल हो गई है, मैंने सभी परीक्षणों में रिलीज मोड में संकलित किया है लेकिन डीबग सेट नहीं किया है = web.config में सच है। इसे स्थापित करने से इस मुद्दे को हल किया गया। मैं इसके बारे में अपना प्रश्न अपडेट कर रहा हूं और हैकड के ब्लॉग पर टिप्पणी भी पोस्ट कर रहा हूं। उस क्रोध के बाद रैजर में आरपीसी 3 9 40 है। – sirmak

+3

कोई समस्या नहीं है। पेर्फ को मापते समय आपको सावधान रहना होगा। – marcind

19

आपने बेंचमार्क कैसे किया? क्या आपकी साइट मोड रिलीज में आईआईएस पर तैनात थी? क्या आपने अपनी मशीन.कॉन्फिग में <deployment retail="true" /> सेक्शन का उपयोग किया था? यह भी याद रखें कि एएसपी.नेट एमवीसी 3 अभी भी भारी विकास में है, इसलिए आप इसे पूरी तरह से अनुकूलित करने की उम्मीद नहीं कर सकते हैं। आरटीएम हिट होने तक कम से कम प्रतीक्षा करें।

+0

हां। मैंने एबी (अपाचे बेंचमार्क) के साथ परीक्षण किया है और 500 - 1000 ग्राहकों के साथ 50,000 अनुरोध चलाए हैं। मैंने इसे दो बार परीक्षण किया है और ये संख्याएं दूसरे परिणाम हैं (पहले वाले हैं)। मुझे पता है कि यह विकास में है लेकिन यह सुनिश्चित नहीं है कि अनुकूलन के बाद 3x प्रदर्शन लाभ संभव है। – sirmak

+0

आप क्यों सुनिश्चित हैं कि 3x ऑप्टिमाइज़ेशन संभव नहीं है? एएसपी.नेट टीम ने पहले से ही कहा है कि रेजर पार्सर अभी तक अनुकूलित नहीं है। –

+0

बीटा 1 जारी किया गया और रेज़र आरपीएस 1550 तक गिर गया। – sirmak

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