المرئي C ++ التعبير 2008: لماذا كان يضع ميغس بايت فارغة في نهاية تنفيذ الإفراج؟

StackOverflow https://stackoverflow.com/questions/477885

سؤال

ومؤخرا اكتشفت أن بلدي تنفيذ اطلاق سراح (مع MSVC ++ تعبير 2008) تصبح كبيرة جدا. وأنا فحص للتنفيذ مع المشاهد عرافة رأيت أن فقط بايت 300K الأولى تحتوي على بيانات مفيدة بايت المتبقية هي الوحيدة الأصفار - 6 ميغس من الصفر بايت

ووالتصحيح بنيت إكس لديها حجم 1MB، ولكن الإصدار هو 6.5MB.

وماذا MSVC ++ تعبير عن فعل هذا الشيء غير مجدية؟ كيف يمكنني إصلاحه؟

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

المحلول

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

نصائح أخرى

وربما كنت تقوم بربط ثابت إكس بك في الإفراج عنهم، ولكن ربط حيوي في التصحيح؟ تحقق هذه هي خصائص المشروع الحوار.

وهناك احتمال آخر هو أن في وضع إطلاق وinlined الكثير من وظائف أو كنت تستخدم الكثير من القوالب.

ويمكنك أن تقول المترجم لتحسين لحجم في خصائص المشروع الحوار.

والإفراج عن أكبر 6 مرات من التصحيح - شيء ربما خطأ. محاولة لإنشاء مشروع جديد ومجرد نسخ التعليمات البرمجية المصدر. ترجمة عليه ومعرفة ما تحصل عليه لتصحيح والإصدار التنفيذية.

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