/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
افتح مربع الحوار صفحات الخصائص للمشروع. للمزيد من التفاصيل ، راجع كيفية: صفحات الخصائص المشاريع المفتوحة.
انقر فوق المجلد /C + + C.
انقر فوق صفحة الخصائص أمثلية.
قم بتعديل خاصية الحجم مرغوب فيه أو السرعة.
لتعيين هذا خيار المحول البرمجي برمجياً
- انظر FavorSizeOrSpeed