سؤال

يقول دليل مجلس التعاون الخليجي:

-fobjc-direct-dispatch

السماح بسرعة إلى مرسل الرسائل. على داروين يتم إنجاز هذا عبر صفحة Comm.

هل يمكنني افتراض أن هذا العلم يلغي الإرسال الديناميكي؟ كيف يعمل؟ أعتقد أنه يجب أن يكون بالسرعة مثل استدعاء وظيفة C إذا تم ربطه مباشرة.

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

المحلول

لا ، لا يزال الإرسال الديناميكي موجودًا (لا تزال المكالمات تسير objc_msgSend). وهذا الخيار لا يقدم أي فرق حاليًا مع x86 (-64).

من http://developer.apple.com/legacy/mac/library/documentation/developertools/gcc-3.3/gcc/objective_002dc-dialect-options.html:

لبعض الوظائف (مثل objc_msgSend) التي تسمى بشكل متكرر للغاية بواسطة برامج Objective-C ، توجد نقاط دخول خاصة في الذاكرة العالية التي يمكن القفز إليها مباشرة (على سبيل المثال ، عبر "bla"تعليمات على PowerPC) لتحسين الأداء. fobjc-direct-dispatch سوف يتسبب الخيار في إنشاء مثل هذه القفزات. هذا الخيار متاح فقط بالتزامن مع وقت التشغيل التالي ؛ علاوة على ذلك ، تم تصميم البرامج مع -fobjc-direct-dispatch سيتم تشغيل الخيار فقط على Mac OS X 10.4 (Tiger) أو الأنظمة اللاحقة.

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