2008-11-11 8 views
5

32 और 64 बिट एमएस विंडोज पर Int64 और Int32 के बीच वास्तविक प्रदर्शन अंतर क्या हैं?32 और 64 बिट एमएस विंडोज पर Int64 और Int32 के बीच वास्तविक प्रदर्शन अंतर क्या हैं?

यह दो ऑपरेटिंग सिस्टम प्रकारों में से प्रत्येक पर Int64 बनाम Int32 के कुछ वास्तविक समय को देखना भी अच्छा होगा। एक्सपी या विस्टा भी दिलचस्प होगा।

  • इस प्रश्न को memcpy प्रदर्शन के बारे में भी देखें।

उत्तर

6

हार्डवेयर तक, इंट 64 x86 से अधिक x64 और IA64 पर अधिक कुशल होगा क्योंकि 64-बिट प्रोसेसर के पास 64-बिट रजिस्ट्रार हैं जो उन पर संचालन करने के लिए हैं।

Int32 सभी x86, x64, और IA64 पर उतना ही कुशल होगा।

x64 पर और IA64 पर Int32 और Int64 दोनों समान रूप से कुशल हैं।

x86 इंट 32 पर एक इंट 64 से अधिक कुशल होगा।

जहां तक ​​ओएस स्वयं है, मुझे नहीं लगता कि आपको ऊपर वर्णित प्रदर्शन परिणामों की तुलना में कोई अतिरिक्त प्रदर्शन समस्या दिखाई देगी।

+0

नोट सभी प्लेटफार्मों पर 32-बिट ints के लिए एक बहुत छोटे से लाभ यह है कि वहाँ के बाद से आप केवल 4 बाइट बजाय एमवी के लिए है इच्छा हो सकती है 8 का। लेकिन यह वास्तव में काफी मामूली है, और ज्यादातर मामलों में कोई स्पष्ट प्रदर्शन अंतर देने की संभावना नहीं है। – Zathrus

+3

मुझे नहीं लगता कि 8 बाइट्स को x64 पर 4 बाइट्स ले जाने से धीमा है। क्योंकि यह एक ही समय में सभी समवर्ती रूप से उन्हें स्थानांतरित करता है। –

+0

यदि आप 8 बाइट आर्किटेक्चर पर 4 बाइट्स ले जाते हैं, तो आपको 4 बाइट्स ज़ीरो करना होगा। – Burkhard

-1

हार्डवेयर बिंदु दृश्य से, यानी यदि ओएस आर्किटेक्चर का पूर्ण लाभ लेता है, तो Int64 64 बिट सिस्टम पर अधिक कुशल होगा।

इंट 32 32 बिट सिस्टम पर थोड़ा अधिक कुशल हो सकता है, क्योंकि 64 बिट सिस्टम को 32 बिट ऑपरेशन का अनुकरण करना पड़ सकता है।

+0

कि सब कुछ गलत है। ओएस मशीन कोड का कोई दुभाषिया नहीं है। int64 बड़ा, कम कैश-सक्षम, गुणा में धीमा है, लेकिन AND, OR, XOR, COMP, NOT आदि समान रूप से तेज़ हैं, और 64 बिट मेमोरी मॉडल पर रिश्तेदार मेमोरी-एड्रेसिंग 8 बिट और 64 बिट रजिस्ट्रार के माध्यम से किया जाता है - 32 बिट रजिस्ट्रार नहीं। amd64 x86 के पीछे संगत है - कोई अनुकरण नहीं। – comonad

2

संदेह में, int32 के साथ जाएं। न केवल x86 आर्किटेक्चर पर यह तेज़ है, और उनमें से बहुत सारे आस-पास हैं, लेकिन याद रखें कि आपका कैश सीमित है, और आप int64 के रूप में अपने CPU कैश में दो बार int32 फिट कर सकते हैं।

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

  • कोई संबंधित समस्या नहीं^_^