2012-07-06 7 views
6

एएसपीनेट (webservice) एप्लिकेशन के प्रदर्शन को देखते हुए, हमने देखा कि आईआईएस पर यह देव सर्वर (18 सेकंड) की तुलना में बहुत धीमी (38 सेकंड) है। विजुअल स्टूडियो के प्रदर्शन प्रोफाइलर (नमूना मोड में) चलाना हमने देखा कि अंतर regex को कॉल कर रहा है। मैच ?! आईआईएस में यह 70% समय ले रहा है, देव सर्वर में एक ही ऐप के खिलाफ एक ही परीक्षण चला रहा है, यह कुल समय का 1% से कम ले रहा है।RegEx.Match विकास सर्वर (कैसिनी) की तुलना में आईआईएस में बहुत धीमी है?

तो कोई भी आईआईएस और देव सर्वर के बीच व्यवहार में इस अजीब अंतर को समझा सकता है ??? मैंने पहले से ही विभिन्न एप्लिकेशन पूल सेटिंग के साथ सामान की कोशिश की है ... लेकिन कुछ भी मदद नहीं मिली

+1

क्या आपने इसे केवल एक बार माप लिया था? –

+0

नहीं, कई बार। यहां तक ​​कि बीच में भी रिबूट किया गया: यह सुसंगत है – Tjipke

उत्तर

5

इसे मिला!

ऐसा लगता है क्योंकि आईआईएस इसे 64 बिट (और 32 बिट में कैसीनी) में चला रहा है। 32 बिट का उपयोग करने के लिए एप्लिकेशन पूल को स्विच करके, यह आईआईएस में भी तेज़ है, इसे 64 बिट पर रीसेट कर रहा है और यह फिर से धीमा है।

64 बिट + regex धीमी पर खोज करके, मैंने यह भी पाया लोग पहले से ही 2006 में इस में पाया गया कि, और यह भी कि यह .NET 2.0 पर एक एसपी में लगाई जानी चाहिए था (देखें: http://blogs.msdn.com/b/bclteam/archive/2007/05/21/the-regexoptions-compiled-flag-and-slow-performance-on-64-bit-net-framework-2-0-josh-free.aspx)

हालांकि मैं .NET 4.0 का उपयोग करें, तो मैं उम्मीद नहीं होता कि इस मुद्दे को अभी भी मौजूद है ...

(stackoverflow पर यह भी देखें: Regex slow on Windows Server 2008)

BTW अगर मैं RegexOptions.Compiled का उपयोग नहीं करता, तो भी 64 बिट पर तेज़ प्रदर्शन करता है। लेकिन मुझे यह देखने के लिए कुछ बेंचमार्किंग करने की ज़रूरत है कि इसे संकलित करने का प्रभाव 32 बिट पर नहीं है।

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