چرا GC زیاد کال میشه؟ عمدتاً به دلیل allocation و آزادسازی سریع و… — An Inspired Engineer — TG.ME

چرا GC زیاد کال میشه؟

عمدتاً به دلیل allocation و آزادسازی سریع و مکرر تعداد زیادی از object هایی با عمر کوتاه توی حافظه اتفاق میوفته، فکر کنید مکرر یه چیزی رو خرید میکنید و یک ثانیه استفاده میکنید و میندازین اشغال.

allocation های کوچک و مکرر:
کدتون به طور مداوم و تو حلقه‌ها یا متدهای پرکاربرد(مثل مسیر استریم، یا شبکه و هرجایی که زیاد کال بشه) ابجکت های جدیدی مثل String، آرایه‌ یا دیتاکلاس(برای ui state) را ایجاد میکنه و از ابجکت هایی که قبلا ساخته استفاده نمیکنه.

تصاویر و Bitmap های بزرگ: لود یا پردازش تصاویری با رزولوشن و سایز بالا و بدون بهینه ‌سازی مناسب یا فرمت مناسب میتونه بخش بزرگی از حافظه رو به سرعت allocate و deallocate کنه. باید حواستون باشه که Bitmap ها به شدت حافظه مصرف میکنن و ساختن و خذف اونا میتونن GC رو تحریک کنن.

#Android

@knowpow
👍10
July 18, 2025 1.6K 9