اجرای Bazel با RAM محدود

در این صفحه نحوه استفاده از پرچم ها برای اجرای Bazel با RAM محدود توضیح داده شده است.

در شرایط خاص، ممکن است بخواهید Bazel از حداقل حافظه استفاده کند. می‌توانید حداکثر هیپ را از طریق پرچم راه‌اندازی --host_jvm_args ، مانند --host_jvm_args=-Xmx2g کنید.

با این حال، اگر بیلدهای شما به اندازه کافی بزرگ باشند، Bazel ممکن است یک OutOfMemoryError (OOM) را زمانی که حافظه کافی ندارد ارسال کند. می‌توانید با ارسال پرچم‌های دستور زیر، به بهای ساخت‌های افزایشی کندتر، Bazel را از حافظه کمتری استفاده کند: --discard_analysis_cache ، --nokeep_state_after_build ، و --notrack_incremental_state .

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

همچنین می توانید هر یک از این پرچم ها را به صورت جداگانه پاس کنید:

  • --discard_analysis_cache حافظه مورد استفاده در هنگام اجرا را کاهش می دهد (نه تجزیه و تحلیل). بیلدهای افزایشی مجبور نیستند بارگذاری بسته را دوباره انجام دهند، بلکه باید تجزیه و تحلیل و اجرا را دوباره انجام دهند (اگرچه حافظه پنهان اکشن روی دیسک می تواند از اکثر اجرای مجدد جلوگیری کند).
  • --notrack_incremental_state هیچ لبه ای را در نمودار وابستگی داخلی Bazel ذخیره نمی کند، به طوری که برای ساخت های افزایشی غیر قابل استفاده است. ساخت بعدی آن داده ها را کنار می گذارد، اما تا آن زمان برای اشکال زدایی داخلی حفظ می شود، مگر اینکه --nokeep_state_after_build مشخص شده باشد.
  • --nokeep_state_after_build همه داده‌ها را پس از ساخت دور می‌اندازد، به طوری که ساخت‌های افزایشی باید از ابتدا ساخته شوند (به جز حافظه پنهان روی دیسک). به تنهایی، روی علامت آب بالای ساخت فعلی تأثیر نمی گذارد.