2012-06-22 39 views
6

क्या, अगर new ResourceManger(myResourceType.FullName, myResourceType.Assembly) के साथ प्रत्येक अनुरोध पर एक नया .NET ResourceManager बनाने का प्रदर्शन (या अन्य) प्रभाव है, तो Designer.cs जेनरेट क्लास (MyResourceType.ResourceManager) में "कैश्ड संसाधन प्रबंधक उदाहरण" का उपयोग कर बनाम?क्या मुझे प्रत्येक वेब अनुरोध के लिए स्थिर कैश संसाधन प्रबंधक या एक नया उदाहरण उपयोग करना चाहिए? फर्क पड़ता है क्या?

मैं .resx फ़ाइलों का उपयोग कर एएसपी.नेट एमवीसी 3 एप्लिकेशन के संदर्भ में काम कर रहा हूं।

संपादित करें: मुझे नई वस्तु के लिए स्मृति आवंटित लागत से परे प्रभाव में रूचि है।

संपादित करें: ResourceManager.ReleaseAllResources के लिए MSDN प्रलेखीकरण को देखते हुए, यह कहा गया है कि:

This method will shrink the working set in a running application. Any future resource lookups on this ResourceManager will be as extensive as the first lookup, since it will need to search and load resources again.

यह लगता सूचित करते हैं कि संसाधन सेट की प्रारंभिक उद्घाटन महंगा है, जो मेरे लिए पता चलता है एक नया बनाने कि प्रत्येक अनुरोध पर प्रबंधक महंगा हो सकता है। हालांकि, दस्तावेज़ संसाधन प्रबंधकों के जीवनकाल/दायरे के संबंध में सर्वोत्तम अभ्यास का सुझाव नहीं देते हैं।

उत्तर

4

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

0

आपके पास इसे बनाते समय किसी ऑब्जेक्ट का आवंटन होगा।

इसका मतलब है कि ऑब्जेक्ट को बार-बार बनाने के लिए आपके पास प्रदर्शन और स्मृति प्रभाव होंगे।

आप इसे कोशिश करते हैं और जांच कर सकते हैं कि आप कितने कचरा संग्रहण चक्र (प्रदर्शन काउंटरों का उपयोग) है "कैश की गई" संसाधन प्रबंधक उदाहरण है, जिसमें एक बार और बनाई गई है (प्रक्रिया के अनुसार) की वजह कोई अनावश्यक आवंटन की मात्रा में भारी बनाम

+0

क्या आप कह रहे हैं कि ऑब्जेक्ट आवंटन केवल निहितार्थ है? मैं संसाधन फ़ाइल कैशिंग जैसी चीजों से ज्यादा चिंतित हूं ... – ChaseMedallion

+0

मुझे इसके बारे में पता नहीं है, लेकिन आपको प्रदर्शन काउंटर और प्रोफाइलर्स से जांच करनी होगी – eyossi