मैंने देखा है कि जब मैं बाइट्स के सभी उदाहरणों को पूर्णांक के साथ प्रतिस्थापित करता हूं तो मेरा nds अनुप्रयोग थोड़ा तेज़ काम करता है। जब भी संभव हो, सभी उदाहरण ऑनलाइन u8/u16 उदाहरण डालते हैं। क्या यह एक विशिष्ट कारण है कि यह मामला क्यों है?पूर्णांक एनडीएस पर बाइट्स से तेज क्यों प्रक्रिया करते हैं?
उत्तर
निन्टेन्दो डीएस का मुख्य प्रोसेसर एआरएम 9, 32-बिट प्रोसेसर है।
संदर्भ: http://en.wikipedia.org/wiki/ARM9
आमतौर पर, सीपीयू word sizes में परिचालन करेगा, इस मामले में, 32-बिट्स। अपने परिचालनों के आधार पर, बाइट्स को पूर्णांक तक या इसके विपरीत रूपांतरित करने के लिए प्रोसेसर पर अतिरिक्त तनाव हो सकता है। यह रूपांतरण और 32-बिट पूर्णांक के अलावा मानों के लिए निर्देशों की संभावित कमी से गति की कमी हो सकती है।
डैनियल ली ने जो कहा, उसके पूरक, एआरएम प्लेटफार्मों पर स्मृति पहुंच को गठबंधन शब्द होना चाहिए, यानी मेमोरी fetches 32 बिट्स के एकाधिक होना चाहिए। मेमोरी से बाइट वैरिएबल लाने से तात्पर्य बाइट युक्त पूरे शब्द को लाने में मदद मिलती है, और प्रोसेसर रजिस्टर के कम से कम महत्वपूर्ण बिट्स में फिट करने के लिए आवश्यक बिट-वार ऑपरेशंस का प्रदर्शन किया जाता है।
अतिरिक्त निर्देश स्वचालित रूप से कंपाइलर द्वारा उत्सर्जित होते हैं, क्योंकि यह आपके चर के वास्तविक संरेखण को जानता है।
क्या आप एक विशिष्ट कोड उदाहरण दे सकते हैं? मुझे संदेह है कि आप उदाहरणों को संरचनाओं में 8/16 बिट चर घोषित कर रहे हैं, और आप उन्हें स्थानीय लोगों के रूप में उपयोग कर रहे हैं। –