সীমিত র‌্যামের সাথে বেজেল চলছে

এই পৃষ্ঠাটি সীমিত RAM সহ Bazel চালানোর জন্য ফ্ল্যাগগুলি কীভাবে ব্যবহার করতে হয় তা বর্ণনা করে৷

কিছু পরিস্থিতিতে, আপনি Bazel ন্যূনতম মেমরি ব্যবহার করতে চাইতে পারেন। আপনি স্টার্টআপ ফ্ল্যাগ --host_jvm_args এর মাধ্যমে সর্বাধিক হিপ সেট করতে পারেন, যেমন --host_jvm_args=-Xmx2g

যাইহোক, আপনার বিল্ডগুলি যথেষ্ট বড় হলে, Bazel একটি OutOfMemoryError (OOM) ফেলতে পারে যখন এটির যথেষ্ট মেমরি না থাকে। আপনি নিম্নোক্ত কমান্ড ফ্ল্যাগগুলি পাস করে, ধীরগতির ক্রমবর্ধমান বিল্ডের খরচে Bazel-কে কম মেমরি ব্যবহার করতে পারেন: --discard_analysis_cache , --nokeep_state_after_build , এবং --notrack_incremental_state

এই পতাকাগুলি একটি বিল্ডে ব্যাজেল যে মেমরি ব্যবহার করে তা কমিয়ে দেবে, ভবিষ্যতের বিল্ডগুলি একটি স্ট্যান্ডার্ড ইনক্রিমেন্টাল বিল্ডের চেয়ে ধীরগতির করার খরচে।

এছাড়াও আপনি পৃথকভাবে এই পতাকার যেকোনো একটি পাস করতে পারেন:

  • --discard_analysis_cache কার্যকর করার সময় ব্যবহৃত মেমরি কমিয়ে দেবে (বিশ্লেষণ নয়)। ক্রমবর্ধমান বিল্ডগুলিকে প্যাকেজ লোডিং পুনরায় করতে হবে না, তবে বিশ্লেষণ এবং সম্পাদন পুনরায় করতে হবে (যদিও অন-ডিস্ক অ্যাকশন ক্যাশে বেশিরভাগ পুনঃনির্বাহকে প্রতিরোধ করতে পারে)।
  • --notrack_incremental_state Bazel এর অভ্যন্তরীণ নির্ভরতা গ্রাফে কোনো প্রান্ত সংরক্ষণ করবে না, যাতে এটি ক্রমবর্ধমান বিল্ডের জন্য অব্যবহৃত হয়। পরবর্তী বিল্ড সেই ডেটা বাতিল করবে, কিন্তু অভ্যন্তরীণ ডিবাগিংয়ের জন্য এটি ততক্ষণ পর্যন্ত সংরক্ষিত থাকে, যদি না --nokeep_state_after_build নির্দিষ্ট করা হয়।
  • --nokeep_state_after_build বিল্ড করার পরে সমস্ত ডেটা বাতিল করবে, যাতে ক্রমবর্ধমান বিল্ডগুলি স্ক্র্যাচ থেকে তৈরি করতে হয় (অন-ডিস্ক অ্যাকশন ক্যাশে ব্যতীত)। একা, এটি বর্তমান বিল্ডের উচ্চ-জল চিহ্নকে প্রভাবিত করে না।