পর্যায়গুলি এবং কর্মক্ষমতা রচনা করুন,পর্যায়গুলি এবং কর্মক্ষমতা রচনা করুন,পর্যায়গুলি এবং কর্মক্ষমতা রচনা করুন,পর্যায়গুলি এবং কর্মক্ষমতা রচনা করুন

যখন Compose একটি ফ্রেম আপডেট করে, তখন এটি তিনটি ধাপের মধ্য দিয়ে যায়:

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

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

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

আরও তথ্যের জন্য, জেটপ্যাক কম্পোজ ফেজেস গাইডটি দেখুন।

সাধারণ নীতিমালা

এমন কয়েকটি সাধারণ নীতি রয়েছে যা অনুসরণ করলে সার্বিকভাবে কর্মক্ষমতা উন্নত করা যায়:

  • যখনই সম্ভব, গণনাগুলো আপনার কম্পোজেবল ফাংশনের বাইরে রাখুন। UI পরিবর্তিত হলেই কম্পোজেবল ফাংশনগুলো পুনরায় চালানোর প্রয়োজন হতে পারে। কম্পোজেবলে রাখা যেকোনো কোড পুনরায় এক্সিকিউট হয়, যা সম্ভবত একটি অ্যানিমেশনের প্রতিটি ফ্রেমের জন্য ঘটে। কম্পোজেবলের কোডকে শুধুমাত্র UI তৈরির জন্য প্রয়োজনীয় অংশেই সীমাবদ্ধ রাখুন।
  • যতদূর সম্ভব স্টেট রিড করা স্থগিত রাখুন। স্টেট রিডিংকে একটি চাইল্ড কম্পোজেবল বা পরবর্তী কোনো পর্যায়ে সরিয়ে নিয়ে, আপনি রিকম্পোজিশন কমাতে পারেন অথবা কম্পোজিশন পর্বটি পুরোপুরি বাদ দিতে পারেন। ঘন ঘন পরিবর্তনশীল স্টেটের জন্য স্টেট ভ্যালুর পরিবর্তে ল্যাম্বডা ফাংশন পাস করে এবং ঘন ঘন পরিবর্তনশীল স্টেট পাস করার সময় ল্যাম্বডা-ভিত্তিক মডিফায়ারকে প্রাধান্য দিয়ে আপনি এটি করতে পারেন। 'সেরা অনুশীলন অনুসরণ করুন' (Follow best practices) এর 'যতদূর সম্ভব রিড স্থগিত রাখুন' (Defer reads as long as possible) অংশে আপনি এই কৌশলটির একটি উদাহরণ দেখতে পারেন।

অতিরিক্ত সম্পদ