View Full Version : چطور خجم برنامه رو کم کنم؟
hex161
یک شنبه 10 دی 1385, 18:31 عصر
با سلام.
من یه دفتر تلفن نوشتم که حجمش 5 مگابایت هست.
چطور میتونم حجمشو کم کنم.
در ضمن مقدار رم زیادی رو اشغال میکنه مثلا 20 مگ از رمو میگیره .
راهی برای حل این مشکل سراغ دارید؟
ممنون.
dkhatibi
یک شنبه 10 دی 1385, 18:55 عصر
با برنامه هایی مثل MoleBox می تونی فایلها را در کنار هم قرار داده فشرده کنید.
اَرژنگ
یک شنبه 10 دی 1385, 19:34 عصر
۱) ایمجها را داینامیک لود کنید.
۲) بِ سایزه فایلهایه دیافام نگاه بندازید، ببینید کدمها بزرگ هستند و سعی کنید سبکترشان کنید.
greenway
یک شنبه 10 دی 1385, 21:06 عصر
بهینه سازی همیشه با تناسب بین حجم حافظه اشغال شده و یا سرعت برنامه در ارتباط است. اگر برنامه ای را برای حجم Optimize کنیم ، سرعت آن کاهش می یابد و اگر آن را برای سرعت بهینه کنیم ، حجم آن افزایش می یابد. زمانی که امکان بهینه سازی در هر دو موضوع با یکدیگر وجود داشته باشد ، معنی آن این است که الگوریتم های پیاده سازی شده قبل از بهینه کردن کد نسبت به الگوریتمهای بعدی اشتباه بوده اند. برای کاهش حافظه مصرفی لازم است برنامه خود را برای حجم بهینه کنید. در صورتی که فقط اندازه فایل اجرایی برایتان اهمیت دارد می توانید از برنامه های فشرده ساز مانند UPX برای فشرده سازی فایلهای اجرایی استفاده کنید که این موضوع باعث تاخیر کوتاهی ( با سیستمهای امروزی با چشم غیر مسلح قابل اندازه گیری نیست ) در اجرای برنامه اجرایی می شود ، اما حافظه مصرفی کاهش نیافته و کمی بیشتر هم خواهد شد ( به دلیل افزوده شدن قسمتی که فایل فشرده شده را باز می کند ) . در بسیاری از فایلهای اجرایی می توانید قسمت Relocation Table فایل را حذف کنید و یا اندازه Align هر بخش (Section) از فایل اجرایی را به حداقل 200h برسانید ( معمولا این اندازه 1000h است ) . که برای اینگونه بهینه سازی ها هم ابزارهای آماده وجود دارد که بدون دردسر درگیر شدن با موضوعات مربوط به آن می توانید از ابزارها استفاده کنید. برخی از این ابزارها را می توانید در سایت http://programmerstools.org/ پیدا کنید. در دلفی و BCB می توانید از مفهوم Frame برای ایجاد همه برنامه در یک Form و تغییر موضوع نمایش در داخل همان یک فرم استفاده کنید.
MNosouhi
یک شنبه 10 دی 1385, 22:17 عصر
قبلا بحث شده ، جستجو کنید.( اگر خوب جستجو کنید روشی هم گفته شده که حجم فایل اجرایی به شدت کم میشه که محدودیت هایی خاص خودش رو داره و البته کاربردهای خاص خودش .)
در بسیاری از فایلهای اجرایی می توانید قسمت Relocation Table فایل را حذف کنید و یا اندازه Align هر بخش (Section) از فایل اجرایی را به حداقل 200h برسانید ( معمولا این اندازه 1000h است ) . که برای اینگونه بهینه سازی ها هم ابزارهای آماده وجود دارد که بدون دردسر درگیر شدن با موضوعات مربوط به آن می توانید از ابزارها استفاده کنید. برخی از این ابزارها را می توانید در سایت
جالبه ، میشه بیشتر توضیح بدبد.
babak869
یک شنبه 10 دی 1385, 23:05 عصر
شما میتونید از برنامه های پکر که حجم فایل اجرایی رو کاهش میدند استفاده کنید من یه نمونه ساده رو براتون گذاشتم.وقتی فایل نهاییتون رو ساختید کافیه که اونو در این برنامه Drag & Drop کنید یا فایلتون رو بکشید و توی این برنامه بندازید . خودش فایلتون رو کمپرس میکنه .البته از برنامه های قویتر مثل ACProtect , AsProtect , AsPack , ... هم میتونید استفاده کنید.
موفق باشید
mehdi_394
یک شنبه 10 دی 1385, 23:19 عصر
بسیاری از یونتهایی که به صورت پیش فرض به پروژه اضافه شده اند ممکن است در برنامه استفاده نشوندشناسایی و حذف این یونیتها در کاهش حجم برنامه بسیار موثر است
greenway
یک شنبه 10 دی 1385, 23:51 عصر
جالبه ، میشه بیشتر توضیح بدبد.
بیشتر برنامه هایی که نوشته شده توسط کمپایلرها با توجه به تعریف فرمت Portable EXE در بخش های جدا از هم تبدیل می شوند که یکی از آنها قسمت Relocation Table است. موضوع Relocation بیشتر در کنترل های ActiveX و DLL ها مصداق پیدا می کند و تقریبا همه فایلهای اجرایی طبق تعریف پیش فرض در ویندوز در آدرس 0x400000 مجازی Map می شوند ( مگر اینکه Image Base آنها را به صورت دستی در آدرس دیگری تعریف کنید). به همین دلیل حذف کردن داده های مربوط به Relocation در فایلهای استاندارد ساخته شده توسط کمپایلرها اشکالی در بارگذاری آنها در حافظه ایجاد نمی کند ( چون ویندوز تقریبا با توجه به ساختار پیاده سازی Swap فایل و Virtual Memory به ندرت دچار کمبود حافظه می شود ). از طرف دیگر سایز Alignment هر بخش باعث افزوده شدن داده اضافی ( معمولا صفر ) در انتهای هر بخش می شود که با حذف آنها هم می توان از حجم فایل اجرایی کم کرد ( که البته به دلیل تفاوت در Loader ویندوزهای 9x و NT توصیه نمی شود ) . در بعضی از برنامه های محافظ مانند PETite با یکی کردن همه بخش ها با یکدیگر و حذف همه این فضاهای خالی حجم فشرده سازی بیشتر می شود. ( برای مثال ویروس CIH در همین فاصله بین Section ها فرار می گرفت ) البته این موضوع فقط بر روی Raw Size فایل اثر گذاشته و در نهایت Virtual Size برنامه اجرایی که مقدار حافظه اختصاص یافته به برنامه را مشخص می کند تفاوتی نخواهد داشت. برای اطلاعات بیشتر کتاب Windows 95 Programming Secrets - Matt Pietrek را مطالعه کنید.
moradi_am
یک شنبه 24 دی 1385, 17:24 عصر
شما میتونید از برنامه های پکر که حجم فایل اجرایی رو کاهش میدند استفاده کنید من یه نمونه ساده رو براتون گذاشتم.وقتی فایل نهاییتون رو ساختید کافیه که اونو در این برنامه Drag & Drop کنید یا فایلتون رو بکشید و توی این برنامه بندازید . خودش فایلتون رو کمپرس میکنه .البته از برنامه های قویتر مثل ACProtect , AsProtect , AsPack , ... هم میتونید استفاده کنید.
موفق باشید
مواظب باشید فایل تبدیل شده را ویروسی میکند (تروجان )
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.