PDA

View Full Version : افزایش حجم EXE در دلفی 2010



AmirSky
یک شنبه 11 بهمن 1388, 23:40 عصر
باسلام
وقتی یک برنامه رو من با دلفی 2010 کامپایل کردم متوجه اضافه حجم EXE تا حدود 2 مگابایت شدم . چون من EXE ها رو با ایمیل برای مشتری ها می فرستم حجم اون اهمیت داره. کسی می دونه چه جوری میشه حجم رو مثل نسخه های قبلی دلفی کم کرد. من قبلا با 2006 کار می کردم. توی تاپیک ها هم سرچ کردم چیزی پیدا نکردم .

ممنون از شما.

vcldeveloper
دوشنبه 12 بهمن 1388, 01:20 صبح
در دلفی 2010 افزایش حجم EXE به دلیل گنجاندن Extended RTTI هست، یعنی برخلاف نسخه های قبلی که داده های محدودی از نوع های داده در زمان اجرا در دسترس بود، در دلفی 2010 اطلاعات بسیار زیادی از نوع های داده در زمان اجرا در دسترس هست که این خودش میتونه قابلیت های دینامیک مختلفی رو به دلفی اضافه کنه.

راهی برای غیر فعال کردن کل RTTI تولید شده وجود نداره، چون تمام یونیت های استاندارد دلفی هم با این قابلیت کامپایل شدند. شما نهایتا می تونید تولید RTTI اضافه رو در یونیت هایی که خودتان نوشتید و در پروژه اضافه کردید، غیر فعال کنید. برای این کار می تونید از سوئیچ زیر در داخل هر یک از یونیت هایتان استفاده کنید:

{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
این کار تا حد کمی روی حجم فایل EXE شما تاثیر میزاره، چون بیشتر حجم پروژه های عادی دلفی مربوط به RTL خودِ دلفی میشه که با این سوئیچ تغییری در آن ایجاد نمیشه.

شما می تونید برای کاهش حجم فایل های EXE خودتان از Packerها استفاده کنید، مثلا ابزاری رایگانی مثل UPX می تونه با توجه به نوع پروژه شما حدودا 40-50 درصد حجم فایل EXE یا DLL شما را کاهش بده.