2011-03-06 14 views
5

मैं सी # के dynamic कीवर्ड का सीमित उपयोग करने पर विचार कर रहा हूं। मेरा initial time trials आश्चर्यचकित था - 100,000 पुनरावृत्तियों के लिए एक सेकंड से भी कम प्रदर्शन का प्रदर्शन (संभवतः डीएलआर कैशिंग के कारण)।डीएलआर की स्मृति पदचिह्न क्या है?

मैं हालांकि, एक स्मृति प्रोफाइलर के लिए उपयोग की जरूरत नहीं है, और Eric Lippert wrote:

तो यह डीएलआर शुरू होता है [...] डीएलआर फिर सी # का एक विशेष संस्करण शुरू होता है कंपाइलर ...

इसका मेमोरी पदचिह्न क्या है, और जब यह गतिशील कोड कचरा इकट्ठा होता है तो इसे अनलोड किया जाता है?

+2

मैं व्यक्तिगत रूप से उच्च स्तर की कचरा-संग्रहण भाषा पर डीएलआर के पदचिह्न के बारे में चिंता नहीं करता जो सी # – dtech

+1

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

उत्तर

11

यह जब गतिशील कोड कचरा-एकत्र किया जाता है उतार दिया जाता है?

प्रश्न गलत गलती का अनुमान लगाता है; गतिशील रूप से जेनरेट कोड वर्तमान कार्यान्वयन में एकत्रित कचरा नहीं है। यह कैश किया गया है और कैश तब तक जीवित रहते हैं जब तक कि पेट काटा नहीं जाता है। हम नहीं जानते कि पिछली बार एक विशेष कोड पथ कहलाए जाने जा रहा है।

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

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