বিল্ড অ্যানালাইজার দিয়ে বিল্ড পারফরম্যান্সের সমস্যা সমাধান করুন

আপনার প্রকল্পের বিল্ড কর্মক্ষমতা পরিদর্শন করতে বিল্ড বিশ্লেষক ব্যবহার করুন। আপনি যে বিল্ডটি করেন তার জন্য, বিল্ড অ্যানালাইজার সবচেয়ে গুরুত্বপূর্ণ তথ্য উপস্থাপন করার চেষ্টা করে যাতে আপনি আপনার বিল্ড পারফরম্যান্সে রিগ্রেশনগুলি দ্রুত সনাক্ত করতে এবং সমাধান করতে পারেন।

বিল্ড কর্মক্ষমতা উন্নত করার জন্য অতিরিক্ত কৌশলগুলির জন্য, আপনার বিল্ড গতি অপ্টিমাইজ করুন পড়ুন।

শুরু করুন

প্রতিবার যখন আপনি আপনার অ্যাপ তৈরি করেন, বিল্ড অ্যানালাইজার একটি প্রতিবেদন তৈরি করে এবং বিল্ড উইন্ডোতে সর্বশেষ প্রতিবেদন থেকে ডেটা প্রদর্শন করে।

শুরু করতে, নিম্নরূপ এগিয়ে যান:

  1. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে নিম্নলিখিত উপায়গুলির মধ্যে একটিতে আপনার অ্যাপটি তৈরি করুন:
    • মেনু বার থেকে Build > Make Project এ ক্লিক করুন।
    • একটি অ্যান্ড্রয়েড অ্যাপ বান্ডেল বা APK তৈরি করতে, মেনু থেকে বিল্ড > বিল্ড বান্ডেল(গুলি) / APK(গুলি) > বিল্ড বান্ডেল(গুলি) বা বিল্ড > বিল্ড বান্ডেল(গুলি) / APK(গুলি) > বিল্ড APK(গুলি) ক্লিক করুন বার
  2. বিল্ড উইন্ডো খুলতে, মেনু বার থেকে দেখুন > টুল উইন্ডোজ > বিল্ড নির্বাচন করুন।
  3. বিল্ড অ্যানালাইজারে বিল্ড রিপোর্ট দেখতে, বিল্ড উইন্ডোতে বিল্ড অ্যানালাইজার ট্যাবে ক্লিক করুন।

বিল্ড বিশ্লেষক যে ডেটা উপস্থাপন করে তা বিল্ড জুড়ে পরিবর্তিত হতে পারে, তাই আপনার প্রকল্পটি একাধিকবার তৈরি করা এবং নিদর্শনগুলি সনাক্ত করতে ডেটা তুলনা করা সহায়ক।

বিল্ডের সময়কাল নির্ধারণকারী টাস্ক সহ প্লাগইনগুলি দেখুন

বিল্ড শেষ করার পর আপনি যখন প্রথম বিল্ড অ্যানালাইজার খুলবেন, তখন উইন্ডোটি বিল্ড অ্যানালাইসিসের একটি ওভারভিউ প্রদর্শন করে, যেমনটি চিত্র 1-এ দেখানো হয়েছে।

চিত্র 1. বিল্ড বিশ্লেষক ওভারভিউ পৃষ্ঠা ফলাফলগুলির একটি সারাংশ দেয়।

বিল্ডের সময়কাল নির্ধারণকারী কার্যগুলির সাথে প্লাগইনগুলির একটি ভাঙ্গন দেখতে, ওভারভিউ পৃষ্ঠায় বিল্ডের সময়কালকে প্রভাবিত করে এমন কার্যগুলির সাথে প্লাগইনগুলিতে ক্লিক করুন৷ আপনি ড্রপডাউন থেকে কার্যগুলি নির্বাচন করতে পারেন এবং নিশ্চিত করতে পারেন যে আপনি প্লাগইন দ্বারা গোষ্ঠীবদ্ধ হচ্ছেন৷ গ্রাফটি প্লাগইনগুলি এবং তাদের সম্পর্কিত কাজগুলি সম্পূর্ণ করতে মোট সময় দিয়ে অর্ডার করে৷

চিত্র 2. বিল্ড বিশ্লেষক প্লাগইনগুলির একটি ব্রেকডাউন প্রদান করে যা আপনার বিল্ডের সময়কালকে প্রভাবিত করে।

বিল্ডের সময়কাল নির্ধারণের কাজগুলি দেখুন

আপনার বিল্ডের সময়কালের জন্য অবদান রাখে এমন কার্যগুলির একটি ব্রেকডাউন দেখতে, ওভারভিউ পৃষ্ঠায় বিল্ডের সময়কে প্রভাবিত করে এমন টাস্কগুলিতে ক্লিক করুন বা ড্রপডাউন থেকে কাজগুলি নির্বাচন করুন৷ আপনার প্রোজেক্ট যদি AGP 8.0 বা তার বেশি ব্যবহার করে তাহলে কাজগুলি ডিফল্টভাবে ক্যাটাগরি অনুসারে গোষ্ঠীভুক্ত করা হয়, তাই বিল্ডের সময়কে প্রভাবিত করে এমন ক্ষেত্রগুলি সনাক্ত করা সহজ। প্রতিটি চাইল্ড টাস্ক এর এক্সিকিউশন সম্পর্কে আরও জানতে ক্লিক করুন।

চিত্র 3. বিল্ড বিশ্লেষক আপনার বিল্ডের সময়কালের জন্য সবচেয়ে দায়ী কাজগুলির একটি ভাঙ্গন প্রদান করে।

সতর্কতা পরিদর্শন করুন

যদি বিল্ড বিশ্লেষক সনাক্ত করে যে কিছু কাজ আরও দক্ষতার সাথে চালানোর জন্য কনফিগার করা যেতে পারে, এটি একটি সতর্কতা প্রদান করে। বিল্ড বিশ্লেষক আপনার বিল্ডের জন্য চিহ্নিত সমস্ত সতর্কতা দেখতে, ওভারভিউ পৃষ্ঠায় সমস্ত সতর্কতাগুলিতে ক্লিক করুন বা ড্রপডাউন থেকে সতর্কতা নির্বাচন করুন৷

কিছু সতর্কতার একটি জেনারেট রিপোর্ট লিঙ্ক থাকে, যেমনটি চিত্র 4-এ দেখানো হয়েছে। আপনি যখন জেনারেট রিপোর্ট লিঙ্কে ক্লিক করেন, তখন অতিরিক্ত তথ্য সহ একটি ডায়ালগ উপস্থিত হয় যা প্লাগইন ডেভেলপারকে প্লাগইনের একটি নতুন সংস্করণে সমস্যা সমাধানে সাহায্য করতে পারে। আপনার ক্লিপবোর্ডে টেক্সট সংরক্ষণ করতে অনুলিপি ক্লিক করুন প্লাগইন বিকাশকারীর কাছে একটি বাগ রিপোর্টে আরও সহজে তথ্য পেস্ট করতে।

চিত্র 4. বিল্ড অ্যানালাইজার সতর্কতা সম্পর্কে বিস্তারিত তথ্য।

সতর্কতার ধরন

বিল্ড বিশ্লেষক নিম্নলিখিত সতর্কতা প্রকারগুলি রিপোর্ট করে:

  • সর্বদা কাজ চালান : একটি সর্বদা চলমান টাস্ক প্রতিটি বিল্ডে অন্যান্য কাজগুলিকে চালিত করে, যা অপ্রয়োজনীয়। আপনি এই সতর্কতাটি কেন দেখতে পারেন তার দুটি প্রধান কারণ রয়েছে:

    • (আরো সাধারণ) আপনি টাস্ক ইনপুট এবং আউটপুট সঠিকভাবে ঘোষণা করেননি। যদি এটি হয় তবে আপনার কাজের জন্য ইনপুট এবং আউটপুটগুলি সঠিকভাবে ঘোষণা করা উচিত। এর অর্থ হল ইনপুট এবং আউটপুট আপনি যেখানে পারেন তা ঘোষণা করা বা প্লাগইন সংস্করণ পরিবর্তন করা যদি সতর্কতা ট্রিগারকারী কাজগুলি তৃতীয় পক্ষের প্লাগইন থেকে হয়।

    • (কম সাধারণ) একটি টাস্ক upToDateWhen থাকে যখন মিথ্যা সেট করা হয়, যা এড়ানো উচিত। এটা হতে পারে যে কিছু যুক্তি আছে যা মিথ্যা বলে মূল্যায়ন করে বা upToDateWhen কখন হার্ডকোড করা হয় মিথ্যা বলে। যদি এমন যুক্তি থাকে যা মিথ্যা বলে মূল্যায়ন করে, তাহলে এই ফলাফলটি ইচ্ছাকৃত হতে পারে এবং আপনি সতর্কতা উপেক্ষা করতে পারেন। যদি upToDateWhen হার্ডকোড মিথ্যা বলে মনে হয়, তাহলে আপনার কোড থেকে হার্ডকোডিং অপসারণ করা উচিত।

  • টাস্ক সেটআপ সমস্যা : এই সতর্কতাটি সেই কাজের জন্য তৈরি করা হয় যেগুলি একই ডিরেক্টরিকে আউটপুট হিসাবে ঘোষণা করে। এর মানে হল যে এই কার্যগুলির আউটপুটগুলি সম্ভবত বিল্ডগুলির মধ্যে সংরক্ষিত হচ্ছে না এবং এই কাজগুলি সর্বদা চলে, এমনকি কোনও পরিবর্তন না থাকলেও৷ এই সতর্কতা মোকাবেলা করার জন্য আপনাকে আপনার কাজের জন্য বিভিন্ন আউটপুট ডিরেক্টরি ঘোষণা করা উচিত। এর অর্থ হল বিভিন্ন আউটপুট ডিরেক্টরি নিজেই ঘোষণা করা যেখানে আপনি পারেন বা প্লাগইন সংস্করণ পরিবর্তন করতে পারেন যদি সতর্কতা ট্রিগারকারী কাজগুলি তৃতীয় পক্ষের প্লাগইন থেকে হয়।

  • নন-ইনক্রিমেন্টাল অ্যানোটেশন প্রসেসর: এই সতর্কতাটি এমন পরিস্থিতিতে তৈরি করা হয় যেখানে একটি টীকা প্রসেসর অ-বর্ধিত হয় এবং JavaCompile টাস্ককে সবসময় অ-বর্ধিতভাবে চালানোর কারণ করে। এই সতর্কতা মোকাবেলা করতে, একটি বর্ধিত টীকা প্রসেসরে স্যুইচ করুন

  • কনফিগারেশন ক্যাশে: আপনার প্রকল্পের জন্য কনফিগারেশন ক্যাশিং সক্ষম না হলে এই সতর্কতা উপস্থাপন করা হয়। আপনার প্রজেক্ট কনফিগারেশন ক্যাশিংয়ের সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করার জন্য বিল্ড বিশ্লেষক বিল্ডগুলির একটি ক্রম ধরে চলে। সামঞ্জস্য পরীক্ষা সফল হলে, আপনি বিল্ড অ্যানালাইজার থেকে কনফিগারেশন ক্যাশিং চালু করতে পারেন।

  • জেটিফায়ার চেক করুন: যদি enableJetifier পতাকা আপনার প্রজেক্টে উপস্থিত থাকে এবং সক্রিয় থাকে তবে এই সতর্কতাটি উপস্থাপন করা হয়; অর্থাৎ, যদি আপনার gradle.properties ফাইলে android.enableJetifier=true থাকে। বিল্ড বিশ্লেষক আপনার প্রকল্পটিকে আরও ভাল বিল্ড পারফরম্যান্স এবং অপরিবর্তিত অ্যান্ড্রয়েড সমর্থন লাইব্রেরি থেকে দূরে স্থানান্তর করতে সক্ষম করতে পতাকাটি নিরাপদে সরানো যায় কিনা তা দেখতে একটি পরীক্ষা করতে পারে৷

ডাউনলোড প্রভাব পরীক্ষা করুন

বিল্ড বিশ্লেষক নির্ভরতা ডাউনলোড করতে ব্যয় করা সময়ের সারাংশ এবং প্রতি সংগ্রহস্থলে ডাউনলোডের একটি বিশদ দৃশ্য সরবরাহ করে। ডাউনলোডের প্রভাব পরীক্ষা করতে, ড্রপডাউন থেকে ডাউনলোড নির্বাচন করুন। এই তথ্যটি সিঙ্ক উইন্ডোতেও পাওয়া যায়।

অপ্রত্যাশিত নির্ভরতা ডাউনলোডগুলি আপনার বিল্ড কর্মক্ষমতাকে নেতিবাচকভাবে প্রভাবিত করছে কিনা তা নির্ধারণ করতে আপনি এই তথ্য ব্যবহার করতে পারেন। এটি ক্রমবর্ধমান বিল্ডের সময় বিশেষভাবে গুরুত্বপূর্ণ, যা ধারাবাহিকভাবে আর্টিফ্যাক্ট ডাউনলোড করা উচিত নয়।

বিশেষত, আপনি কনফিগারেশন সমস্যা সনাক্ত করতে এই তথ্য ব্যবহার করতে পারেন, যেমন নির্ভরতার গতিশীল সংস্করণ ব্যবহার যা অপ্রত্যাশিত ডাউনলোডের কারণ হয়। এছাড়াও, যদি আপনি একটি নির্দিষ্ট সংগ্রহস্থলের জন্য প্রচুর পরিমাণে ব্যর্থ অনুরোধ দেখতে পান, তাহলে এটি নির্দেশ করতে পারে যে সংগ্রহস্থলটি আপনার সংগ্রহস্থলের কনফিগারেশনে সরানো বা নীচে সরানো উচিত।

চিত্র 5. বিল্ড অ্যানালাইজার বিল্ডের সময়কালের উপর ডাউনলোডের প্রভাব দেখায়।

[কেবল-উইন্ডোজ] অ্যান্টিভাইরাস সফ্টওয়্যার প্রভাব পরীক্ষা করুন

বিল্ড অ্যানালাইজার আপনাকে জানায় যে অ্যান্টিভাইরাস সফ্টওয়্যার আপনার বিল্ড কর্মক্ষমতা প্রভাবিত করতে পারে কিনা। এটি ঘটতে পারে যদি অ্যান্টিভাইরাস সফ্টওয়্যার, যেমন Windows ডিফেন্ডার, Gradle দ্বারা ব্যবহৃত ডিরেক্টরিগুলির রিয়েল-টাইম স্ক্যানিং করে। বিল্ড অ্যানালাইজার সক্রিয় স্ক্যানিং থেকে বাদ দেওয়ার জন্য ডিরেক্টরিগুলির একটি তালিকা সুপারিশ করে এবং, যদি সম্ভব হয়, এটি উইন্ডোজ ডিফেন্ডার ফোল্ডার বর্জন তালিকায় যুক্ত করার জন্য একটি লিঙ্ক অফার করে।