سؤال

لقد قمت ببعض ترميز ASM المضمّن لـ SSE من قبل ولم يكن الأمر كذلك أيضاً من الصعب حتى بالنسبة لشخص لا يعرف ASM.لكنني ألاحظ أن MS يوفر أيضًا جوهرًا يغلف العديد من هذه التعليمات الخاصة.

هل هناك اختلاف معين في الأداء، أو أي سبب قوي آخر لضرورة استخدام أحدهما فوق الآخر؟

للتكرار من العنوان، هذا يغطي على وجه التحديد الجوهريات التي تم الكشف عنها بواسطة VC++ 2008 لـ C++ الأصلية غير المُدارة.

هل كانت مفيدة؟

المحلول

بشكل عام ، من الأفضل استخدام الجوهارات - إنه أكثر إنتاجية للمبرمج وسيقوم برنامج التحويل البرمجي الجيد (EG ICC) بعمل جيد في تخصيص التسجيل وجدولة التعليمات وما إلى ذلك. يقوم بعمل معقول - يمكنك دائمًا التبديل إلى ICC لاحقًا إذا كنت بحاجة إلى الحصول على أداء أفضل.

نصائح أخرى

لا يوجد تجميع مضمّن في Visual C++ لـ x64.يمكن استخدام Intrinsics على x64 أيضًا.إذا كنت تريد في أي وقت نقل التعليمات البرمجية الخاصة بك إلى x64، فسيتعين عليك استخدام intrinsics.

تتشابه الجوهارات مع تعليمات التجميع المكافئة ويجب عليك استخدامها إذا أمكن - يعرف المترجم أن يترجمتها مباشرة ، لا يوجد فرق في الأداء.

استخدام الجوهارات.

عادةً ما يؤدي استخدام التجميع إلى عدة أيام من العمل بدون توقف ، فقط لمعرفة برنامج التحويل البرمجي يتفوق على أفضل أداء لك بنسبة 5 ٪. (5 ٪ إذا كنت جيدًا حقًا ؛ على الأرجح 30 ٪.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top