PDA

View Full Version : سوال: چرا حجم برنامه های ایجاد شده با Lazarus اینقدر بالا است؟؟؟



BORHAN TEC
سه شنبه 12 بهمن 1389, 11:07 صبح
سلام
من یک برنامه بسیار ساده با Lazarus ایجاد کرده ام. من برای ساخت این برنامه هیچ کدی را ننوشتم و فقط چند تا Button روی فرم انداختم. موقعی که برنامه را کامپایل کردم متوجه شدم که حجم فایل exe ساخته شده 12 مگابایت است. یک نکته جالب دیگه: موقعی که این فایل exe را با winrar فشرده کردم فایل rar ساخته شده حدوداً به 1 مگابایت رسید و این نشان می دهد که فایل اجرایی ساخته شده با Lazarus بسیار می تواند فشرده شود.
من باید چه کاری انجام بدهم که فایل اجرایی ایجاد شده حجم کمی داشته باشد؟؟؟
آیا باید گزینه های کامپایلر را تنظیم کنم؟؟؟
اگر اینطور است، لطفاً توضیح دهید؟؟؟
در ضمن من از نسخه 0.9.28.2 beta نرم افزار Lazarus استفاده می کنم.

BORHAN TEC
چهارشنبه 27 بهمن 1389, 12:50 عصر
یعنی تا به حال کسی با Lazarus کار نکرده؟!!! :متعجب:

Felony
چهارشنبه 27 بهمن 1389, 19:15 عصر
اتفاقا چند روز پیش تو Yahoo با یکی از بچه های SOF داشتم صحبت میکردم اون هم از همین موضوع شکایت میکرد و میگفت خیلی دنبالش گشته و چیز خاصی جز استفاده از Packer پیدا نکرده ؛ حالا صحتش رو نمیدونم ...

vcldeveloper
چهارشنبه 27 بهمن 1389, 19:30 عصر
بخش عمده اش Debug info هست، که میشه در نسخه نهایی آنها را تولید نکرد، ولی حتی در اون صورت هم، با وجود کاهش حجم، حجم فایل تولید شده از فایل های تولید شده توسط دلفی بیشتر خواهد بود، و ممکن هست همچنان نیاز به استفاده از Packer داشته باشید.

a_mosavian
شنبه 28 اسفند 1389, 22:30 عصر
برای کاهش حجم:


نوع Built Configuration رو روی Release تنظیم کن. اگه چنین چیزی نیافتی، توی تنظیمات پروژه گزینه های مربوط به دیباگ رو بردار. گرچه این کار دیباگینگ رو با اشکال روبرو می کنه و بهتره هنگامی که دیباگینگ برنامه پایان گرفت انجام بشه. گزینه های مربوط به چک اورفلو و I/O رو هم بردار تا سرعت برنامه ت بیشتر شه!
از upx بهره بگیر تا پرونده رو فشرده کنی! گرچه راه حل اصولی نیست ولی نه کسی می فهمه و نه مشکلی پدید میاد! وانگهی این راه حل تنها برای ویندوز هست. اگه برای مک یا لینوکس از لازاروس بهره می گیری باید برنامه های مشابه اون رو پیدا کنی.

a_mosavian
شنبه 28 اسفند 1389, 22:35 عصر
Under Windows executable file size is somewhat larger than the Delphi (6/7) equivalent because debug information is included within Lazarus executables, instead of as separate files like Delphi. Lazarus program file size can be significantly reduced by using external symbols file (it can be set in Compiler options), and also by using Strip (http://en.wikipedia.org/wiki/Strip_%28Unix%29) and UPX (http://en.wikipedia.org/wiki/UPX) (although UPX has significant disadvantages). See FPC wiki: Size Matters (http://wiki.freepascal.org/Size_Matters)

delphi887
شنبه 10 دی 1390, 11:14 صبح
سلام
در تکمیل صحبت های دوستان می توانید اطلاعات زیر را مطالعه کنید .
http://shahriary.staffcms.um.ac.ir/?option=com_content&view=article&id=7487:_l_a_z_a_r_u_s&catid=309:_m_e
یا حق

champion
چهارشنبه 06 اردیبهشت 1391, 22:34 عصر
این حجم زیاد مربوط به نگهداری اطلاعات اضافی برای دیباگ برنامه در فایل اگزه هست . شما باید برای کاهش حجم برنامه باید لازاروس رو به نحوی تنظیم کنید که این اطلاعات رو در یک فایل جداگانه نگهداری کنه . باری این کار مراحل زیر باید انجام بشه :
1- از منوی Project ، گزینه Project Option را انتخاب کنید
2- از درخت سمت چپ فرم ، گزینه compiler Option گزینه Linking را انتخاب نمایید تا تنظیمات آن دیده شود
3- حال گزینه Use extera gdb debug symbol file (-Xg را انتخاب نمایید .
4- فرم را بسته و برنامه خود را مجددا کامپایل نمایید و تمام .
حال ملاحظه می‌نمایید که حجم برنامه به حدود یک مگابایت کاهش پیدا کرده است .

.