/Os،/Ot (يفضل مستخدمو مربع متوسط تعليمات برمجية، يفضل مستخدمو سريع تعليمات برمجية)

تصغير أو تكبير الحجم EXEs و مكتبات الارتباط الديناميكي.

/Os
/Ot

ملاحظات

/Os(Favor مربع متوسط تعليمات برمجية) تصغير حجم EXEs ومكتبات الارتباط الديناميكي بإرشاد المحول البرمجي إلى يفضل مستخدمو الحجم عبر سرعة. يمكن تقليل المحول البرمجي العديد من بنيات C و C + + إلى تسلسلات functionally مشابهة من تعليمات برمجية للجهاز. في بعض الأحيان تقدم هذه الاختلافات tradeoffs الحجم مقابل سرعة. /Osو /Otتسمح لك خيارات إلى تحديد المفضل لواحدة فوق الأخرى:

/Ot(Favor Fast تعليمات برمجية) بزيادة سرعة EXEs ومكتبات الارتباط الديناميكي بواسطة إرشاد برنامج التحويل البرمجي يفضل مستخدمو سرعة على الحجم. (هذا هو الإعداد الافتراضي.) يمكن تقليل المحول البرمجي العديد من بنيات C و C + + إلى تسلسلات functionally مشابهة من تعليمات برمجية للجهاز. في بعض الأحيان، تقدم هذه الاختلافات tradeoffs الحجم مقارنة بسرعة. يتم تضمين خيار/Ot "سرعة زيادة" ( /O2 ) خيار. /O2خيار يضم العديد من خيارات لإنتاج سريع جداً تعليمات برمجية.

إذا استخدمت /Osأو /Ot، ثم يجب عليك أيضا تحديد /Og إلى أمثلية تعليمات برمجية.

ملاحظة

المعلومات التي هو المجمعة من إنشاء تشكيل جانبي لتشغيل اختبار تحسينات التجاوز هو otherwهوe ستكون سارية المفعول إذا عينت /Ob، /Os، أو /Ot. لمزيد من المعلومات، أمثليات الإرشادية على جانبي.

x86 معينة

المثال التالي تعليمات برمجية يوضح الاختلاف بين "الصغير مرغوب فيه" تعليمات برمجية ( /Os) وخيارات "مرغوب فيه السريع" تعليمات برمجية ( /Ot) خيار:

ملاحظة

ما يلي وصف سلوك المتوقع عند استخدام /Osأو /Ot. ومع ذلك، سلوك المترجم قد ينتج من الإصدار إلى الإصدار تحسينات مختلفة تعليمات برمجية أدناه.

/* differ.c
  This program implements a multiplication operator
  Compile with /Os to implement multiply explicitly as multiply.
  Compile with /Ot to implement as a series of shift and LEA instructions.
*/
int differ(int x)
{
    return x * 71;
}

كما هو موضح في جزء تعليمات برمجية التالية للجهاز، عندما DIFFER.c هو ترجمة لحجم ( /Os)، implements المترجم التعبير في عبارة الإرجاع بوضوح multiply multiply إلى إنتاج سلسلة قصير، ولكنه أبطأ من تعليمات برمجية:

   mov    eax, DWORD PTR _x$[ebp]
   imul   eax, 71                  ; 00000047H

كبديل لذلك، عندما DIFFER.c هو التحويل البرمجي للسرعة ( /Ot)، implements المترجم ضرب التعبير في عبارة الإرجاع كسلسلة من Shift زر زر و LEAالإرشادات لإنشاء تسلسل سريع، ولكن أطول من تعليمات برمجية:

   mov    eax, DWORD PTR _x$[ebp]
   mov    ecx, eax
   shl    eax, 3
   lea    eax, DWORD PTR [eax+eax*8]
   sub    eax, ecx

إنهاء × 86 الخاصة

لتعيين خيار المحول البرمجي هذا في بيئة تطوير Visual Studio

  1. افتح مربع الحوار صفحات الخصائص للمشروع. للمزيد من التفاصيل ، راجع كيفية: صفحات الخصائص المشاريع المفتوحة.

  2. انقر فوق المجلد /C + + C.

  3. انقر فوق صفحة الخصائص أمثلية.

  4. قم بتعديل خاصية الحجم مرغوب فيه أو السرعة.

لتعيين هذا خيار المحول البرمجي برمجياً

راجع أيضًا:

المرجع

خيارات/O (@)

خيار المحول البرمجي

خيارات إعداد المترجم