प्रतिबिंब प्रदर्शन कार्यान्वयन पर निर्भर करेगा (दोहराए गए कॉल को कैश किया जाना चाहिए जैसे:) entity.GetType().GetProperty("PropName")
। चूँकि अधिकांश प्रतिबिंब मैं एक दिन में दिन के आधार पर देखता हूं, इसका उपयोग डेटा पाठकों या अन्य रिपॉजिटरी प्रकार की संरचनाओं से संस्थाओं को आबाद करने के लिए किया जाता है, जो मैंने विशेष रूप से प्रतिबिंब पर बेंचमार्क प्रदर्शन का फैसला किया है जब इसे ऑब्जेक्ट गुण प्राप्त करने या सेट करने के लिए उपयोग किया जाता है।
मैंने एक परीक्षण तैयार किया जो मुझे लगता है कि यह उचित है क्योंकि यह सभी दोहराई जाने वाली कॉलों और केवल वास्तविक सेटवैल्यू या गेटवैल्यू कॉल को कैश करता है। प्रदर्शन परीक्षण के लिए सभी स्रोत कोड bitbucket पर हैं: https://bitbucket.org/grenade/accessortest । जांच का स्वागत और प्रोत्साहन है।
मेरा निष्कर्ष यह है कि यह व्यावहारिक नहीं है और डेटा एक्सेस लेयर में प्रतिबिंब को हटाने के लिए ध्यान देने योग्य प्रदर्शन सुधार प्रदान नहीं करता है जो उस समय 100,000 पंक्तियों से कम वापस आ रहा है जब प्रतिबिंब कार्यान्वयन अच्छी तरह से किया जाता है।
ऊपर दिया गया ग्राफ़ मेरे छोटे बेंचमार्क के आउटपुट को प्रदर्शित करता है और दिखाता है कि जो तंत्र परावर्तन करते हैं, केवल 100,000 चक्र के निशान के बाद ही ऐसा करते हैं। अधिकांश DALs केवल एक बार में कई सौ या शायद हज़ारों पंक्तियाँ लौटाते हैं और इन स्तरों पर परावर्तन ठीक चलता है।