چه طور می توان مصرف رم توسط برنامه را کاهش داد

با سلام خدمت همه ی دوستان
یک برنامه نوشتم که تاریخ هجری شمسی با اوقات شرعی رو نشون میده به همراه یک ساعت آنالوگ.موقع اجرا 10 مگابایت از رم رو مصرف میکنه.آیا میشه کاری کرد که مقدار کمتری از رم مصرف بشه یا اینکه آیا میشه کاری کرد که به جای استفاده از رم ، از هارد استفاده بکنه؟
 

akherat

مدیر انجمن
اون قسمت از کد که فکر میکنی رم زیاد میگیره رو بزار
 

++Hadi++

Active Member
اشغال رم و پروسس دو جنبه مخالف هم هستند که معولا با استفاده از یکی ،دیگری کمتر استفاده می شه و ...
معمولا اگر از گرافیک وکتور استفاده کنید ،پروسستون بالا می ره ولی رمتون میاد پایین و اگه از بیت مپ استفاده کنید ،بر عکس می شه...
دقیقا چه چیزایی و تو کارتون دارید که خیلی رمتونو مشغول کرده؟در مورد تقویم هم می تونید به جای اینکه هر لحظه ،تاریخ رو تنظیم کنید ،اونو در بازه های خاص استفاده کنید.همچنین باید کنترل درستی رو باید داشته باشید تا پردازشی زادی کار نکنه و ...
همچنین شاید یه سری داده ها بیخودی در فضای رم قرار گرفته اند که باید بیان بیرون...معمولا مدیریت رم تو اکشن اسکریپت 3 مشکلات فراوونی داره و به کرات دیدیم که با unload کردن یه محتوا و حتی gc ،حافظه heap سیستم به اون صورت درست تخلیه نشده و خوب اگه در این حد هست ،خیلی مهم نیست و می تونید اغماض کنید،البته gc برا بیرون کشیدن پردازش هاینا لازم از پردازنده هست و ربط زیادی به رم نداره.اما در کل بعید می دونم با یه برنامه تقویم قمری ،انقدر برنامه ،رم اشغال کنه!بیشتر از این باید خودتون بررسی کنید و از یه فلش ساده که هیچی توش نیست استارت بزنید و یکی یکی ،قسمتها و مراحل کارتون رو اضافه کنید تا ببینید چه چیزی انقده فضای رم رو می گیره.البته امبد فونت و انتخاب تمام کاراکتر ها هم می تونه خیلی رو رم تاثیر بزاره.خیلی در حد خیلــــــــــــــــــــــــــی...
 
آخرین ویرایش:
از جوابتون خیلی ممنونم
من اصلا از بیت مپ استفاده نکردم و کارهای گرافیکی رو تماماً با خود فلش طراحی کردم
البته فونت رو هم وارد برنامه کردم که بنا به گفته ی شما به احتمال زیاد مشکل از همون باشه

به هر حال برنامه رو پیوست میکنم خودتون ببیندید
 

پیوست ها

  • shamsi.zip
    289.4 کیلوبایت · بازدیدها: 40

aliamel

کاربر فعال
علاوه بر مواردی که دوستان عرض کردند میشه راه دیگه ای رو هم در نظر گرفت.اگر مشکل پاکسازی واقعا براتون جدی و مسئله سازه می تونید از متد pauseForGCIfCollectionImminent واقع در پکیج system استفاده کنید.بنده لینک مطلب رو براتون قرار داده ام:


البته استفاده از این متد کمی پیچیده به نظر میرسه و احتمالا نیاز به آگاهی کامل از رفتار اون خواهید داشت.
 

++Hadi++

Active Member
مرسی علی جان
این متد تازه به اکشن 3 اضافه شده؟ دقیقا کارش چیه؟
 

aliamel

کاربر فعال
درسته. از جمله متدهای مهمی هست که در نسخه 3 فلش پلیر و ایر قابل استفاده است.
کنترل بر انجام پاکسازی حافظه تخصیصی در زمان معین و یا زمانی که کاربر مد نظر دارد. توجه داشته باشید که مقدار پارامتری که این متد دریافت می کنه باید بین 0 و1 باشه.در واقع این پارامتر اولویت زمانی جهت انجام عملیات cg رو تعیین می کنه.
 

جدیدترین ارسال ها

بالا