सामान्य विडसम यह है कि rep movsb
समान संचालन करते समय rep movsd
(या 64-बिट, rep movsq
पर) से बहुत धीमी है। हालांकि, मैं कुछ आधुनिक मशीनों पर परीक्षण कर रहा हूं, और रन टाइम बफर आकारों (10 बाइट्स से 2 मेग्स) की एक विस्तृत श्रृंखला में समान (माप शोर तक) बाहर आ रहे हैं। अब तक मैंने अभी 2 मशीनों (32-बिट इंटेल एटम डी 510 और 64-बिट एएमडी एफएक्स 8120) पर परीक्षण किया है।x86 स्ट्रिंग निर्देश प्रदर्शन के बारे में विश्वसनीय जानकारी?
वहाँ किसी भी आधुनिक x86 (32- या 64-बिट) मशीनें हैं जहां
rep movsb
की तुलना में धीमीrep movsd
(याrep movsq
)?यदि नहीं, आखिरी मशीन क्या थी जहां अंतर महत्वपूर्ण था, और यह कितना महत्वपूर्ण था?
हो, तो कोई मुझे rep movsd
या rep movsq
का उपयोग कर के लिए माल-culting परीक्षण का एक समूह असंरेखित सिर/पूंछ में स्मृति को तोड़ने के लिए से बचने के लिए इच्छुक के दृष्टिकोण से यह सवाल और गठबंधन बीच पूछ रहा हूँ ऐसा करने के लिए वास्तविक लाभ ...
आधुनिक मशीनों के लिए आपके प्रदर्शन परिणाम सही हैं। –
यह स्मृति बस बैंडविड्थ द्वारा थ्रॉटल किया गया है, सीपीयू नहीं। –
सिद्धांत में यह संभवतः सत्य है, लेकिन प्रतिलिपि बनाने के अन्य तरीके (उदा। सी लूप) 2-8x धीमे हैं। इसलिए खर्च किए गए सीपीयू का समय एक अंतर बना रहा है। –