/LTCG (وقت الارتباط تعليمات برمجية توليد)

/LTCG[:NOSTATUS|:STATUS|:PGINSTRUMENT|:PGOPTIMIZE|:PGUPDATE]

ملاحظات

حيث:

  • : NOSTATUS |: حالة (اختياري)
    تحديد ما إذا كان يجب الرابط dهوplay مؤشر تقدم إظهار ما هي النسبة المئوية للارتباط هو كاملة. القيمة الافتراضية إلى لا يتم عرض معلومات حالة هذا.

  • : (اختياري) PGINSTRUMENT
    تعين التي الرابط يجب إخراج ملف.pgd في التحضير لتشغيل اختبار الآلية في تطبيق. يمكنك بشكل اختياري تحديد /PGD إلى إنشاء الملف.pgd باسم غير افتراضي أو الموقع.

    سيتم استخدام بيانات التي تم جمعها من تشغيل الآلية إلى إنشاء صورة محسنة. للحصول على مزيد من المعلومات، راجع ملف تعريف التحسينات الموجهة . نموذج قصير لهذا خيار هو/LTCG:PGI.

  • : (اختياري) PGOPTIMIZE
    تعين أنه يجب على الرابط استخدام بيانات ملف التعريف التي تم إنشاؤها بعد تشغيل ثنائي الآلية إلى إنشاء صورة محسنة. يجب أن تكون الجميع ملفات إدخال مماثلة إلى الملفات التي تم تحديدها مع/LTCG:PGI. للحصول على مزيد من المعلومات، راجع ملف تعريف التحسينات الموجهة . نموذج قصير لهذا خيار هو/LTCG:PGO.

  • : (اختياري) PGUPDATE
    تسمح قائمة ملفات إدخال إلى إضافتها أو تعديلها من ما تم تحديده في: مرحلة PGINSTRUMENT. ومع ذلك، أية ملفات إدخال الجديد سيتم لا تحسين أمثلية الأداء الإرشادية على يحلل وتم تغييره أجزاء من ملف إدخال تم إبطال بيانات ملف التعريف التي تم تجميعها أثناء مرحلة آلات لذلك تعليمات برمجية لا سيتم تحسين مع تحسينات الإرشادية على يحلل. للحصول على مزيد من المعلومات، راجع ملف تعريف التحسينات الموجهة . نموذج قصير لهذا خيار هو/LTCG:PGU.

ملاحظات

يعلم خيار/LTCG الرابط إلى استدعاء المحول البرمجي ثم قم بتنفيذ أمثلية الأداء للبرنامج بأكمله. يمكنك أيضا القيام الإرشادية يحلل للأمثلية. للحصول على مزيد من المعلومات، راجع ملف تعريف التحسينات الموجهة .

باستثناء ما يلي، لا يمكنك إضافة خيارات إضافى لرابط إلى/LTCG:PGOPTIMIZE أو/LTCG:PGUPDATE تشغيل التي تم لم يتم تحديد في/LTCG:PGINSTRUMENT تشغيل:

لا يلزم أي خيارات الرابط بتحديد/LTCG:PGINSTRUMENT تحديد/LTCG:PGOPTIMIZE؛ فإنها تكون مضمنة.

سيتم فقط لبقية هذا الموضوع مناقشة/LTCG من إنشاء التعليمة البرمجية الارتباط والوقت.

/LTCG هو مضمنة مع /GL .

الرابط استدعاء توليد تعليمات برمجية وقت الارتباط إذا أنه هو تمرير وحدة نمطية تم تحويله برمجياً باستخدام /GLأو الوحدة نمطية MSIL (راجع ملفات.netmodule كإدخال الرابطللحصول على مزيد من المعلومات). في حالة عدم وضوح تحديد /LTCGعند تمرير /GLأو الوحدات النمطية MSIL إلى الرابط، سيتم الرابط أخيرا الكشف عن هذا وأعد الارتباط مع /LTCG. تحديد بشكل واضح /LTCGعند تمرير /GLبنية الوحدات النمطية MSIL و إلى رابط للامكان الأسرع أداء.

/LTCG هو غير صالح للاستخدام مع /المتزايد .

عند/LTCG هو استخدامها مع أي /Og ، /O1 ، /O2 أو /Ox ، يتم تنفيذ أمثلية الأداء التالية:

  • المشتركة-وحدة نمطية? inlining

  • تخصيص سجل interprocedural (64 بت أنظمة التشغيل فقط)

  • اصطلاح استدعاء المخصصة (x86 فقط)

  • الإزاحة TLS صغيرة (x86 فقط)

  • تكديس مزدوج المحاذاة (x86 فقط)

  • تحسين إلغاء الغموض ذاكرة (تداخل المعلومات الخاصة بشكل أفضل عمومي المتغيرات ومعلمات إدخال)

استخدام/LTCG و/Ogt سيؤدي إلى محاذاة إلى مزدوج التحسين.

إذا تم تعيين/LTCG و/Ogs، مزدوج لن يتم تنفيذ محاذاة. إذا كان معظم الدالات في تطبيق يتم التحويل البرمجي للسرعة، مع بعض دالات التحويل البرمجي للحجم (على سبيل المثال، باستخدام pragma بالشكل الأمثل)، المحول البرمجي سوف مزدوجة محاذاة هذه الدالات التي تم تحسينها لحجم في حالة استدعاء الوظائف التي تحتاج إلى محاذاة مزدوجة.

إذا كان المحول البرمجي يمكن التعرف تشغيل الجميع مواقع استدعاء دالة، سيتم تجاهل معدلات الاتصال-اصطلاح صريحة تشغيل دالة المحول البرمجي وحاول إلى تحسين اصطلاح استدعاء الدالة:

  • تمرير معلمات في التسجيلات

  • إعادة ترتيب المعلمات المحاذاة

  • قم بإزالة معلمات غير المستخدمة

إذا كانت الدالة هو استدعاء عبر مؤشر دالة، أو إذا كان يتم استدعاء إجراء دالة خارج الوحدة نمطية المترجمة مع/GL، المحول البرمجي لن يحاول اصطلاح استدعاء إحدى الدالات بالشكل الأمثل.

ملاحظة

إذا كنت تستخدم/LTCG وإعادة تعريف mainCRTStartup، التطبيق الخاص بك يمكن أن يكون لديك المتعلقة سلوكاً غير متوقع إلى تعليمات برمجية للمستخدم الذي يقوم بتنفيذ قبل تهيئة الكائنات العمومية. توجد ثلاث طرق إلى معالجة هذه المشكلة: قم بإعادة تعريف mainCRTStartup لا، قم بترجمة الملف الذي يتضمن mainCRTStartup/LTCG، أو يهيّئ المتغيرات العمومية لا و على الكائنات بشكل ثابت، إذا كان ذلك ممكناً.

/الوحدات النمطية LTCG و MSIL

الوحدات النمطية المترجمة مع /GL و /CLR التي يمكن استخدامها كإدخال لرابط عند /LTCGهو المحدد:

  • /LTCGيمكن أن يقبل ملفات الكائن الأصلي؛ مختلط الكائن الاصلي/اداره الملفات (التحويل البرمجي مع /clr)، خالص كائن ملفات (التحويل البرمجي مع /clr:pure)، و ملفات آمن الكائن (التحويل البرمجي مع /clr:safe)

  • /LTCGيمكن قبول آمن. netmodules، التي يمكن إنشاؤها بواسطة /clr:safe /LNفي Visual C + + و /target:moduleمع أي غير ذلك ‏‫Visual Studio برنامج التحويل البرمجي. . تقديمه netmodules مع /clrأو /clr:pureغير مقبول مع /LTCG.

  • لا يقبل/LTCG:PGI الأصلي الوحدات النمطية المترجمة مع/GL و/clr، أو الوحدات النمطية فقط (تقديمه بواسطة/clr: فقط)

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

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

  2. انقر فوق المجلد خصائص تكوين.

  3. Click the General property page.

  4. بتعديل خاصية التحسين "الكامل للبرنامج".

يمكنك أيضا يطبق /LTCGإلى بناء الخاصة باختيار "ملف تعريف الإرشادية أمثلية" من قائمة بنية، أو بالنقر بزر الماوس الأيمن فوق اسم مشروع في "مستكشف الحل" وتحديد واحد خيارات "تحسين أداء الإرشادية لملف التعريف".

إلى قم بتعيين هذا خيار المترجم برمجياً

راجع أيضًا:

المرجع

تعيين خيارات الرابط

خيارات الرابط