Android NDK - هل يدعم رمز الذراع المستقيم أو مجرد إبهام

StackOverflow https://stackoverflow.com/questions/2380152

  •  24-09-2019
  •  | 
  •  

سؤال

لقد طُلب مني تقييم منصة Android لمنتجنا وأنا أبحث في خيارات مختلفة ، أنا فقط أخدش السطح الآن والشيء الوحيد الذي يزعجني هو أنه لا يمكنني رؤية كيفية ترجمة رمز على مستقيم رمز الذراع (بدون إبهام) ، أعرف أن الإبهام يعمل أبطأ وسنحتاج إلى الأداء في الأقسام الرئيسية من الكود لدينا.

أنا فكر في يجب أن يكون فقط تعيين -march العلم في LOCAL_CFLAGS التابع Android.mk ملف ، لكن لا يمكنني الحصول على ذلك للعمل ...

هل أستطيع مساعدتك؟

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

المحلول

تحديد العلم التالي لوحدة في Android.mk سوف تجمع رمز الذراع المستقيم.

LOCAL_ARM_MODE := arm

قد يساعد التمكين التحسين أيضًا:

LOCAL_CFLAGS := -O3

نصائح أخرى

يمكنك بناء الذراع أو الإبهام أو مزيج من الاثنين.

في Makefile ، في LOCAL_SRC_FILES, ، حيث ستدرج MyFile.c, ، حدد MyFile.c.arm (لا تقم بإعادة تسمية الملف على القرص ، فقط قم بذلك في قائمة ملفات المصدر). يتم استخدام هذه الاتفاقية في جميع أنحاء Android للرمز الذي هو أمر محترم (أو يحتاج فقط إلى الذراع لسبب ما).

تطبق الملاحظات المعتادة ، بالطبع: يميل رمز الإبهام إلى طلب المزيد من الإرشادات لإنجاز شيء ما ، ولكن كل تعليمات هي نصف الحجم ، وبالتالي فإن الكود عادة ما يكون أبطأ قليلاً ولكنه أيضًا أصغر قليلاً. في بعض الحالات ، يسمح الحجم الأصغر بتناسب أفضل مع ذاكرة التخزين المؤقت (الصغيرة) في وحدات المعالجة المركزية للذراع ، ويمكن أن تكون أسرع بالفعل.

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