सामान्य प्रोसेसर पर सामान्य अनुमान लगाने की गति बेहद जटिल है। यह न केवल हस्ताक्षरित पहुंच के लिए बल्कि सामान्य रूप से सच है।
आधुनिक प्रोसेसर के पास क्रमशः पाइपलाइन आर्किटेक्चर हैं, संभवतः निर्देशों के समानांतर निष्पादन और कई अन्य चीजें जो निष्पादन को प्रभावित कर सकती हैं।
यदि अनलिखित पहुंच समर्थित नहीं है तो आपको अपवाद मिलता है। लेकिन अगर यह समर्थित है तो आप कई कारकों के आधार पर मंदी कर सकते हैं या नहीं भी। इन कारकों में शामिल हैं कि आप कौन से अन्य निर्देशों को असाइन किए गए पहले और बाद में निष्पादित कर रहे थे (क्योंकि प्रोसेसर पिछले निर्देशों को निष्पादित करते समय या आगे बढ़ने के लिए अपना डेटा लाने में सक्षम हो सकता है और प्रतीक्षा करते समय बाद के निर्देशों को निष्पादित कर सकता है)।
एक और महत्वपूर्ण अंतर तब होता है जब अनचाहे पहुंच कैशलाइन सीमाओं में होती है। आम तौर पर कैश में 2x तक पहुंच एक अनियंत्रित पहुंच के लिए हो सकती है, वास्तविक मंदी यह है कि यदि पहुंच कैशलाइन सीमा पार करती है और डबल कैश मिस का कारण बनती है। सबसे खराब संभावित मामले में 2 बाइट अनलाइन किए गए पढ़ने के लिए प्रोसेसर को स्मृति के लिए दो शैलियों को बाहर निकालने की आवश्यकता हो सकती है और फिर स्मृति से 2 शैलियों को पढ़ा जा सकता है। यह एक बहुत सारी डेटा चलती है।
अनुकूलन के लिए सामान्य नियम भी यहां लागू होता है: पहला कोड, फिर मापें, फिर अगर और कोई समस्या हो तो समाधान हो।
स्रोत
2012-09-19 09:27:30
अंगूठे का नियम: अधिकांश आर्किटेक्चर पर अनलिखित पढ़ने के परिणामस्वरूप एक गठबंधन पढ़ने की तुलना में ~ 2x प्रदर्शन हिट होता है क्योंकि इसमें डेटा प्राप्त करने और इसे ठीक करने के लिए दो पढ़ने चक्र होते हैं। लेखन थोड़ा अधिक जटिल हैं। –