"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل يمكن للمترجمين تحسين مكالمات جديدة في C ++؟

هل يمكن للمترجمين تحسين مكالمات جديدة في C ++؟

نشر في 2025-03-25
تصفح:478

Can Compilers Optimize Away `new` Calls in C  ?

هل يمكن للمترجم التخلص من تخصيص ذاكرة الكومة؟ يجوز للمترجمين تحسين الكود ، بما في ذلك إزالة البيانات غير الضرورية. هل يمكن للمترجمين القضاء على تخصيصات ذاكرة الكومة التي تم إجراؤها باستخدام جديد؟

سلوك المترجم ) تحسين المكالمة الجديدة ، حتى مع أعلام التحسين الكاملة. يجادل البعض بأنه لا يُسمح للمترجم بتحسين المكالمات الجديدة لأنه قد يكون له سلوك يمكن ملاحظته (على سبيل المثال ، إلقاء استثناء). يزعم آخرون أنه يُسمح بتحسين المكالمات الجديدة إذا كان المترجم يمكن أن يضمن عدم تأثر أي سلوك يمكن ملاحظته.

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

اعتبارات إضافية

يمكن للمشغل تطبيقات جديدة في وحدات ترجمة مختلفة أن تؤثر على صحة التحسينات المترجمة المتعلقة بتخصيصات الكومة.

  • في حين أن بعض المترجمين ينفذون هذا التحسين استنادًا إلى N3664 ، إلا أن صلاحيته تظل موضوعًا للمناقشة وتعتمد على ظروف محددة ، بما في ذلك معيار C ووجود مخصصات الذاكرة المخصصة.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3