یک فروند توسعه دهنده آزاد
بهینه سازی سرعت gradle
سلام. در این مقاله سعی میکنم تجربیات خودم رو در مورد بهینهسازی سرعت gradle برای توسعه دهندگان اپلیکیشنهای android بنویسم تا شاید کمکشون کنه زندگی بهتری داشته باشن :)
ضد ویروس بی ضد ویروس : اگر از windowsOS استفاده میکنید حتما حالت realtime ضد ویروس رو حتما غیر فعال کنید (البته در هنگام برنامه نویسی) در واقع این اصلی ترین مشکل کندی gradle در windowsOS هست.
ویندوز رو فراموش کنید {لطفا} : از gnuLinuxOS یا macOS استفاده کنید، به دلیل وجود ext4 در linux و memory managment kernel و عدم وجود نرم افزارهای مدیریت فرکانس cpu برای بهینهسازی باتری، gradle در gnuLinuxOS سریعتره، در مورد macOS هم این موضوع صدق میکنه + وجود سختافزار قوی که حرفی برای گفتن نمیزاره.
همه چیز در یک پارتیشن : سعی کنید همه فایلها از جمله sdk و پروژه و خود android studio رو همه در پارتیشنی ذخیره کنید که os در اون قرار داره (مخصوصاااا ویندوز), پراکندگی فایلها باعث میشه در زمان build گرفتن سیستم شما هزینه زمانی انتقال این فایلها رو به جون بخره.
تنظیمات gradle.properties خیلی مهمن : هر پروژه ای که در gradle ایجاد میکنید فایلی با نام gradle.properties داره پس به محتوی این فایل تنظیمات زیر رو اضافه کنید، (اگر تنظیمات از قبل وجود داشت جایگزین کنید).
org.gradle.jvmargs=-Xmx2g
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configureondemand=true
org.gradle.daemon=true
نکته : در مورد تنظیمات بالا باید توضیح بدم که مهم ترینشون org.gradle.caching هست و باعث میشه اگر فایلهای شما پراکنده هستن در پارتیشنهای مختلف با استفاده از کش این مشکل رو رفع کنه و org.gradle.parallel پروژههایی که چند ماژول دارن رو به صورت موازی build میکنه و ...
نکته : پیشنهاد میکنم داکیومنتهای gradle رو نگاهی بندازین
از چک کردنهای آنلاین جلوگیری کنید :) طبق عکس عمل کنید.
نکته : اگر نیاز به دانلود dependency های جدید داشتید باید offline work رو غیر فعال کنید و بعد از اتمام sync دوباره offline work رو فعال کنید.
ترفندها و راهکارهای خیلی زیادی وجود داره که من خودم همه رو اعمال میکنم ولی خب مهم ترینها همینا بودن و بقیه تاثیر زیادی ندارن، پس مقاله رو طولانی نمیکنم :)
مطلبی دیگر از این انتشارات
تست و CI در برنامه نویسی اندروید
مطلبی دیگر از این انتشارات
مشکلی که شاید با آن برخورد کنید!
مطلبی دیگر از این انتشارات
لیستی از مفاهیم مهم برای درک بهتر برنامه نویسی اندروید